1. はじめに
プロトコルはいくつかのプロパティとメソッドを規定しており、その機能は Java の抽象クラスに似ています。Swift の型はプロトコルに準拠していくつかの合意されたプロパティとメソッドを実装します。 Swift のプロトコルは、protocol キーワードを使用して宣言されます。 Swift のプロトコルには、いくつかのメソッドや追加機能を実装するために拡張できる非常に興味深い機能もあります。
2. プロトコルで属性とメソッドを定義します
プロトコルで定義される属性は、名前と型についてのみ一致します。特定の型の実装では、属性が読み取り可能であるか、読み取りおよび書き込み可能であるかを指定する必要もあります。サンプルコードは次のとおりです:
注意すべき点は、プロトコル内の読み取り可能は読み取り専用ではないということです。ただし、プロトコルが読み取り可能および書き込み可能であるように規定されている場合は、このプロパティは読み取り可能および書き込み可能である必要があります。 readable の場合、この属性は、特定の実装に応じて読み取り専用または読み取りおよび書き込み可能になります。
プロトコルで合意されたメソッドは、インスタンス メソッドまたはタイプ メソッドです。例は次のとおりです。
リーリー
3. 契約の特徴
プロトコルには属性とメソッドの実装はありませんが、型として使用することができ、関数のパラメーターと戻り値で広く使用されています。例は次のとおりです。
リーリープロトコルは他のタイプと同様に継承でき、サブプロトコルには親プロトコルによって合意されたプロパティとメソッドが自動的に設定されます。プロトコルは class キーワードを通じて定義することもできます。例は次のとおりです。
リーリー
プロトコルは、その中のプロパティやメソッドをオプションとして定義することもできます。つまり、このプロトコルに準拠するクラスは、オプションのプロパティやメソッドを実装する場合と実装しない場合があります。ただし、それらをオプションとして宣言するには、プロトコルが @objc 型である必要があります。次のように:
リーリー