就以基本面來說,類別跟結構都會有一些共同的東西:
而上述這些東西因為內容、功能各異,將來會有一些相關的說明。
然而類別(class)比起結構(struct)又多出一些東西:
上述這些東西大抵上是我們在字面上所見的異同,不過就樣態上來說,類別與結構會長得像下面兩者:
class、struct裡面可以裝類別的屬性(property)、方法(method)、其他可以定義的特性。
剛開始接觸class、struct的人可能比較不熟悉屬性、方法這兩個詞:
像name、height就會是Human裡面的屬性。
如func的部分,我設置了一個會回傳睡覺的函式,在實體化為Adam之後,才可以使用Adam來呼叫他下面的方法,即.sleep( )
其他的內容,如下標(subscript)、建構器(intialize)、擴展(extension)、協定(protocol)等內容較為複雜,之後文章會陸續提及。
總之,屬性與方法是類別與結構比較容易理解的內容,而要使用一個在class或struct裡面的函數,必須經過實體化的過成,生成一個實例(instance),如下
就前一個例子來說,我們制定了一個Human的struct,但實際上要取用這個Human裡面的東西,無論是屬性(property)或方法(method),都要經過 let 某個東西 =類別或結構名稱()這個過程。
才會生成一個實際使用的實體(instance)
而這時候,我們就可以對Adam為所欲為了,不管是要叫他睡覺也好或啥鬼的。
綜合上述,這篇大抵上提到了幾個內容:
類別(class)、結構(struct)的相同、相異處(因為內容比較繁雜,所以之後另開篇章描述)
在類別、結構裡面的常數(constant)、變數(variable)就是屬性(property),而函式(function)被稱為方法(method)
我們建構了class、struct裡面的屬性、方法後,如果要使用它,就必須要把它變成實體(instance),才能實際的使用其中定義的屬性與方法。
鐵人賽