配列
Rubyで最初に感心(というか感動)したのは配列だ。
動的伸張が可能でありリストと同様に使え、何よりもあの忌々しい「配列範囲例外」を気にせずプログラミングできることが素晴らしい。また、要素を指定する序数を基点から負数で指定することもできるのは非常にスマートだ。
irb(main):001:0> a = [1, 3, 5, 7, 9] => [1, 3, 5, 7, 9] irb(main):002:0> a[-1] => 9 irb(main):003:0> a[5] => nil irb(main):004:0>
なお、驚くことに配列で使われているブラケット([])はメソッドであり、配列以外でも使えるため、例えばC#などで重宝していたインデクサと同等の機能を簡単に実装できる。
foolist.rb (Shift_JIS)
class FooList def initialize @foolist = ["天災", "愛宕山", "宿替え", "延陽伯"] end def (index) @foolist[index] end def =(index, val) @foolist[index] = val end def size @foolist.size end end list = FooList.new list[4] = "辻占茶屋" p list[0..list.size-1]
実行結果
ruby -Ks foolist.rb ["天災", "愛宕山", "宿替え", "延陽伯", "辻占茶屋"]
素晴らしいじゃないか。