Swift 入門 | プロトコルと拡張 | 拡張
プロトコルはクラスにメソッドの実装を求めるものだった。拡張は、既存のクラスにメソッドを直接追加する機能である。構文は簡単である。
extension クラス名 {
...... 追加する内容 ......
}
クラス名 には機能を追加するクラスを指定する。
メソッドだけでなくプロパティも追加できる。ただし、追加できるのは get や set の処理を定義する計算型プロパティだけである。
拡張は自作クラスだけでなく、Swift の標準ライブラリや iOS フレームワークが提供するクラスにも利用できる。
たとえば、Int を拡張し、1 から指定した数までの合計を求める getTotal メソッドを追加してみよう。
extension Int {
func getTotal()->Int {
var total:Int = 0
for i in 1...self {
total += i
}
return total
}
}
var num = 1234
print(num.getTotal())
extension Int と記述して Int 型を拡張している。これにより、すべての Int 値で getTotal メソッドを利用できる。var num = 1234 のように作成した通常の変数でも呼び出せる。100 までの合計を求めるなら、100.getTotal() を実行すればよい。
Int や String のような Swift の基本的な型にも、拡張を使って簡単に機能を追加できる。