配列

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
["天災", "愛宕山", "宿替え", "延陽伯", "辻占茶屋"]

素晴らしいじゃないか。