SwiftのProtocol
いつ使うのか
構造体やクラスの作成時など、インターフェースとして使う
あくまでも型なので、配列の型や引数などにも指定できる
何が嬉しいのか
他の言語で似てる機能はなにか
interfaceににてる
code:swift
protocol Animal {
var name: String { get }
var age: Int { set get }
func bark() -> String
}
interfaceと型クラスの両方の性質を持つ
overrideはない
extensionを使ってデフォルト実装を与えるか、そのprotocolの実装時に指定するのみ ref 参考