拡張

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

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

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

Swift の拡張とは

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

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

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

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

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

次の例では String を拡張して、hello という関数を追加しています。この関数は "Hello, (元の文字列)!" という形式の文字を出力します。

extension String {
	func hello() {
		print( "Hello, \(self)" )
	}
}

var s = "Ichiro"
s.hello()

実行結果

Hello, Ichiro

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Swift による iOS 開発入門