Structures in Swift
在 Swift 中定義 structure 語法如下,我們定義 3 個常見的 structures:
定義完,我們就可以使用 structure 了:
可以注意到,我們在定義 structure 時,並沒有宣告 initializer,但為什麼我們可以直接使用 Point(x: 0.0, y: 0.0)
這個 initializer 呢?
這是因為,在 Swift 中,所有的 structures 都會自動產生 memberwise initializer,也就是說,Swift 會幫你自動產生 initializer,而 initializer的參數就是全部的 properties。真是太聰明了呀 (跟 objc 相比)!
小提醒:相反的, class 不會自動產生 initializer 帶有全部參數,想要有參數要自己寫。
此外,如果我們想在 Rect
中定義一個「算面積」的 variable 可以嘛?可以!Swift 中 structure 也可以定義 computed variables:
area
為 computed variables。
接著一定會想問:在 Swift 中的 structure 也可以定義 method 嘛?可以!Swift 中 structure 也可以定義 method,例如:
宣告與呼叫方法就跟 class 相同。
既然這樣,就會延伸出另一個問題: 什麼時候用 Structure,什麼時候用 Class ?
下一篇: Structure of Class?