エクステンションは、既存のクラス、構造体、列挙型、あるいはプロトコルの型に新しい機能を追加します。これには、オリジナルのソースコードへのアクセスを持たない型の拡張(レトロアクティブモデリング)を含みます。エクステンションは、Objective-C でのカテゴリに似ています。(Objective-C のカテゴリと異なり、Swift のエクステンションには名前がありません。)
Swift のエクステンションでは、以下のようなことができます。
- コンピューテッドのインスタンスプロパティとコンピューテッドのタイププロパティを追加
- インスタンスメソッドとタイプメソッドを定義
- 新しいイニシャライザを定義
- サブスクリプトを定義
- 新しいネストされた型を定義して使用
- 既存の型をプロトコルに準拠
Swift では、プロトコルを拡張することもできます。詳細は、Protocol Extensions を確認してください。
NOTE
エクステンションは型に新しい機能を追加できますが、既存の機能をオーバーライドすることはできません。
Portions of this page are translations based on work created and shared by Apple and used according to terms described in the Creative Commons Attribution 4.0 International License.