跳转到内容

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. 宣告一個介面,看看結構能否繼承介面。