Swift 通訊協定
本教程屬於 Swift 系列
通訊協定是一種讓不同類型的對象具有共同功能的方法。
通訊協定的定義如下:
1 | protocol Mammal { |
結構體和類別可以採用通訊協定:
1 | struct Dog: Mammal { |
通訊協定可以定義屬性和方法,但不提供值和實現,結構體/類別必須實現它們:
1 | protocol Mammal { |
屬性可以定義為 get
或 get set
。如果是 get
,則屬性必須實現為只讀,并帶有一個 getter。
任何採用該通訊協定的類型必須遵從該協定,即實現這些方法或提供這些屬性:
1 | struct Dog: Mammal { |
結構體和類別可以採用多個通訊協定:
1 | struct Dog: Mammal, Animal { |
注意,對於類別來說,這與定義超類的語法相同。如果有超類,則在冒號之後將其列為第一個項目。