BOO入门/结构
外观
< BOO入門
BOO入门 > 结构 (上一章:多型与继承 下一章:命名空间)
结构与类别相比,最大的差别在于结构是值型别,而类别则是参考型别。这意味著当你回传值或是设定值的时候,实际上是复制资料过去而不是复制参考。这很有用,因为宣告不给值的时候,并不会是 null,而一定会有个预设值,也因此无法与 null 作比较。这排除了很多与参考型别相关的错误检查。
结构也无法继承类别,也无法继承结构。结构只能继承介面。
与其它语言不同,结构可以有方法。
宣告结构
[编辑]宣告结构的方法与宣告类别非常相近,差别在于 class 被换成 struct 了。
// 宣告結構
struct Coordinate:
def constructor(x as int, y as int):
_x = x
_y = y
[property(x)]
_x as int
[property(y)]
_y as int
c as Coordinate
print c.x, c.y
c = Coordinate(3, 5)
print c,x, c.y
输出结果
0 0 3 5
从例子里,你能看到,结构实体化的时候,不需要呼叫建构子,就可以显示其值。
练习
[编辑]- 加上方法:Print,让结构本身可以印出内部的值。
- 宣告一个介面,看看结构能否继承介面。