サブスクリプト (添え字)
ここではプログラミング言語 Swift におけるサブスクリプト (添え字, subscripts) の定義の仕方及び使い方について説明します。
添え字については、配列などのコレクションを扱う場合にはしばしば登場するので、使ったことはあると思います。
C# では添え字を特別に定義する場合は、this[] という風に特別な形式で実現しているわけですが、Swift ではどうなるでしょうか。
subscript キーワードによる添え字の実装
Swift では添え字を定義するには、subscript キーワードを使います。
演算子のオーバーライドというより、専用のキーワードを用いてメソッドを定義することで、そのオブジェクトを利用するときに添え字で subscript にアクセスできます。
class Foo {
subscript( i : Int ) -> Int {
return i + 10
}
}
var f = Foo()
print( f[1] )
11
また二つ以上のパラメータを取ることも可能です。
class Foo {
subscript( i : Int , j : Int ) -> Int {
return i * j
}
}
var f = Foo()
print( f[ 3, 5 ] )
さらに subscript のパラメータの型は String にもでき、この場合 Dictionary のように使えます。
class Foo {
subscript( s : String ) -> String {
return "Hi, \(s)!"
}
}
var f = Foo()
print( f[ "Ichiro" ] )
演算子をオーバーライドするのではなくて、subscript というキーワードで添え字を実装するのは、わかりやすいものですね。