Swift による iOS 開発入門

ホーム > Swift のクラスと構造体 > 拡張

拡張

Swift では既存のクラス (classes)、構造体 (structs)、Enums に機能を追加することができます。

これは自分で定義して、ソースコードを持っているクラスに対しては当然といえますが、 ソースコードにアクセスできないようなクラスに対しても行うことができます。

例えば、String に対しても機能を追加できます。

Swift の拡張とは

Swift では既存のクラス、構造体、列挙型に後付けで機能を追加することができます。

これを拡張 (extensions) といいます。

拡張では次のことが実現可能です。

  • コンピューテッド・プロパティの追加
  • インスタンスメソッド、タイプメソッドを定義
  • 新しいイニシャライザを追加
  • サブスクリプト (添え字) の定義
  • ネストタイプ (nested types) の追加
  • プロトコルに従うよう変更する

さっそく具体例をみてみましょう。

次の例では String を拡張して、hello というプロパティを追加しています。このプロパティは空でないときに、 "Hello, (元の文字列)!" という形式の文字を返します。

プレイグラウンドの実行結果、確かに動作していますね。

ホーム > Swift のクラスと構造体 > 拡張