プロトコルの基本
プロトコルの定義方法
構造体・クラス・列挙型などの型がプロトコルAに準拠するとプロトコルAの持つ機能・特性を準拠した型も持つことができます。
プロトコルAに準拠する方法
複数のプロトコルに準拠した型を定義する場合は上記のように,(カンマ)で区切って記述します。
上記のように記述したうえで、準拠するプロトコルが要求するプロパティ・メソッドなどを型の中で実装すれば、プロトコルに準拠した型を定義できます。
sample1
protocol ProtocolA{ func methA() } struct StructA:ProtocolA{ func methA(){ } }
sample1ではProtocolAという名のプロトコルを定義し、次にProtocolAに準拠した構造体StructAを定義しています。
ProtocolAは、準拠する型(StructA)に、メソッドmethA()の実装を要求していますので、StructAの定義内でメソッドmethA()を定義する必要があります。
プロトコルが要求するプロパティ・メソッドを準拠する型内で定義していないとコンパイルエラーとなります。(sample2)
sample2
protocol ProtocolA{ func methA() func methB() } struct StructA:ProtocolA{ func methA(){ } }
main.swift:7:8: error: type 'StructA' does
…