Swift-generics
Swift-ジェネリック
Swift 4言語は、柔軟で再利用可能な関数と型を記述する「汎用」機能を提供します。 ジェネリックは、重複を避けて抽象化を提供するために使用されます。 Swift 4標準ライブラリは、ジェネリックコードで構築されています。 Swift 4sの「配列」および「辞書」タイプは汎用コレクションに属します。 配列と辞書の助けを借りて、配列は「Int」値と「String」値またはその他の型を保持するように定義されています。
プレイグラウンドを使用して上記のプログラムを実行すると、次の結果が得られます-
汎用関数:型パラメーター
ジェネリック関数を使用して、「Int」や「String」などのデータ型にアクセスできます。
プレイグラウンドを使用して上記のプログラムを実行すると、次の結果が得られます-
関数exchange()は、上記のプログラムで説明されている値を交換するために使用され、<T>は型パラメーターとして使用されます。 初めて、関数exchange()が呼び出されて 'Int’値が返され、関数exchange()の2回目の呼び出しで 'String’値が返されます。 カンマで区切られた山括弧内に複数のパラメータタイプを含めることができます。
型パラメーターは、それが保持する型パラメーターの目的を知るためにユーザー定義として命名されます。 Swift 4は、<T>をジェネリック型パラメーター名として提供します。 ただし、配列や辞書などの型パラメーターは、それらが型「辞書」に属していることを識別するキー、値として指定することもできます。
プレイグラウンドを使用して上記のプログラムを実行すると、次の結果が得られます-
ジェネリック型の拡張
スタックプロパティを拡張してアイテムの上部を知ることは、 'extension’キーワードに含まれています。
プレイグラウンドを使用して上記のプログラムを実行すると、次の結果が得られます-
型の制約
Swift 4言語では、「型制約」を使用して、型パラメーターが特定のクラスを継承するかどうかを指定したり、プロトコル適合規格を保証したりできます。
プレイグラウンドを使用して上記のプログラムを実行すると、次の結果が得られます-
関連するタイプ
Swift 4では、キーワード 'associatedtype’によってプロトコル定義内で関連型を宣言できます。
プレイグラウンドを使用して上記のプログラムを実行すると、次の結果が得られます-
Where句
型制約により、ユーザーは汎用関数または型に関連付けられた型パラメーターの要件を定義できます。 関連する型の要件を定義するために、「where」句は型パラメーターリストの一部として宣言されます。 'where’キーワードは、型パラメーターのリストの直後に配置され、その後に関連する型の制約、型と関連する型の間の等価関係が続きます。
プレイグラウンドを使用して上記のプログラムを実行すると、次の結果が得られます-