サブスクリプト (添え字)

ここではプログラミング言語 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 というキーワードで添え字を実装するのは、わかりやすいものですね。

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

© 2024 Swift による iOS 開発入門