ホームページ > バックエンド開発 > Python チュートリアル > Swift でのプロトコル学習チュートリアル

Swift でのプロトコル学習チュートリアル

WBOY
リリース: 2016-07-22 08:56:23
オリジナル
1208 人が閲覧しました

1. はじめに

プロトコルはいくつかのプロパティとメソッドを規定しており、その機能は Java の抽象クラスに似ています。Swift の型はプロトコルに準拠していくつかの合意されたプロパティとメソッドを実装します。 Swift のプロトコルは、protocol キーワードを使用して宣言されます。 Swift のプロトコルには、いくつかのメソッドや追加機能を実装するために拡張できる非常に興味深い機能もあります。

2. プロトコルで属性とメソッドを定義します

プロトコルで定義される属性は、名前と型についてのみ一致します。特定の型の実装では、属性が読み取り可能であるか、読み取りおよび書き込み可能であるかを指定する必要もあります。サンプルコードは次のとおりです:

リーリー

注意すべき点は、プロトコル内の読み取り可能は読み取り専用ではないということです。ただし、プロトコルが読み取り可能および書き込み可能であるように規定されている場合は、このプロパティは読み取り可能および書き込み可能である必要があります。 readable の場合、この属性は、特定の実装に応じて読み取り専用または読み取りおよび書き込み可能になります。

プロトコルで合意されたメソッドは、インスタンス メソッドまたはタイプ メソッドです。例は次のとおりです。

リーリー
同様に、構築方法もプロトコルで定義できます。

3. 契約の特徴

プロトコルには属性とメソッドの実装はありませんが、型として使用することができ、関数のパラメーターと戻り値で広く使用されています。

例は次のとおりです。

リーリー
タイプとしてのプロトコルの使用のもう 1 つの応用ポイントは、このプロトコルに準拠するすべてのコレクション タイプとしてプロトコルを使用できることです。

プロトコルは他のタイプと同様に継承でき、サブプロトコルには親プロトコルによって合意されたプロパティとメソッドが自動的に設定されます。プロトコルは class キーワードを通じて定義することもできます。例は次のとおりです。

リーリー

このプロトコルは他の型と同じように使用できるため、is、as?、as! を使用してチェックして変換することもできます。is と as の詳細な使用法については、Swift の型変換の内容を確認できます。

プロトコルは、その中のプロパティやメソッドをオプションとして定義することもできます。つまり、このプロトコルに準拠するクラスは、オプションのプロパティやメソッドを実装する場合と実装しない場合があります。ただし、それらをオプションとして宣言するには、プロトコルが @objc 型である必要があります。次のように:

リーリー

Swift のプロトコルには、プロパティ、メソッド、添字を実装するために拡張できる非常に重要な機能もあります。これは、一部の一般クラスのメソッドにとって非常に便利です。これは、このプロトコルを継承し、そのようなメソッドをデフォルトで実装するすべてのクラスと同等です。 リーリー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート