Ruby でもインデクサが実装できるようです。
実際には [] 演算子を定義するという形です。
def [](index)
# do something...
end
def [](index, length)
# do something...
end
def []=(index, value)
# do something...
end
def []=(index, length, value)
# do something...
end
この定義がされているクラスのオブジェクトを list とすると
obj = list[0]
var, foo = list[1, 2]
list[1] = "hoge"
list[2, 3] = "hage"
と、こんな感じで使える。
ちなみに var, foo = list[1, 2] というのは多重代入と呼ばれるもので、戻り値が最初の要素から順に格納される。
たとえば url, query = request_url.split(/?/) てな具合に使える。
あらかじめフォーマットが決まっている CSV を扱うときなんかも便利だろう。
明示的に初期化するには num1, num2, num3 = 1, 2, 3 としてやるらしい。(こちらは配列じゃない)