跳转到内容

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

从例子里,你能看到,结构实体化的时候,不需要呼叫建构子,就可以显示其值。

练习

[编辑]
  1. 加上方法:Print,让结构本身可以印出内部的值。
  2. 宣告一个介面,看看结构能否继承介面。