Swift 結構體
本教程屬於 Swift 系列。
結構體是 Swift 中一個重要的概念。
Swift 到處都有結構體,甚至內建的類型也是結構體。
我們可以創建結構體的實例,我們稱之為 對象(objects)。
在大多數語言中,對象只能由類創建。Swift 也有類,但是你也可以從結構體中創建對象,官方文件還建議我們更傾向使用結構體,因為它們使用起來更加簡單。
它們是類的輕量版。
一個結構體可以有屬性。
一個結構體可以有方法(函數)。
一個結構體可以定義下標。
一個結構體可以定義初始化器。
一個結構體可以遵從協議。
一個結構體可以被擴展。
類允許的一個重要特性是繼承,所以如果你需要繼承,你需要使用類。
結構體的定義使用如下語法:
1 | struct Dog { |
結構體內部你可以定義存儲屬性:
1 | struct Dog { |
這個結構體定義定義了一個類型。要創建一個具有此類型的新實例,使用以下語法:
1 | let roger = Dog() |
一旦你有了一個實例,你可以使用點語法來訪問其屬性:
1 | let roger = Dog() |
相同的點語法也用於更新屬性值:
1 | roger.age = 9 |
你也可以通過傳遞屬性的值創建結構體實例:
1 | let syd = Dog(age: 7, name: "Syd") |
要這樣做,屬性必須被定義為變量,使用 var
,而不是常量(使用 let
)。同時,重要的是要尊重那些屬性定義的順序。
結構體可以有實例方法:屬於結構體實例的函數。
1 | struct Dog { |
我們還有型別方法:
1 | struct Dog { |
通過 Dog.hello()
調用。
結構體是一種值類型。這意味著在傳遞給函數時,或從函數返回時,它們會被複製。當我們將一個變量指向結構體時,也是如此。
這也意味著,如果我們想要更新結構體的屬性,我們必須使用 var
定義它,而不是 let
。
Swift 中的所有類型都被定義為結構體:Int、Double、String、數組和字典等都是結構體。
tags: [“Swift”, “結構體”, “對象”, “類”, “屬性”, “方法”, “型別方法”]