(続)Arrayオブジェクトにもの申す

1.7からのArray#fetchが未チェックだったことが判明。
(ありがとうございます>id:winebarrel さん)

ということで、書き直す。

#!/usr/bin/ruby
class Array
  def [](i)
    self.fetch(i)
  end
end
a=Array[1,2,3]
puts a[0] # =>1
puts a[2] # =>3
puts a[3] # =>IndexError

エラーメッセージでfetchなのがばれるのが若干問題?

ということで、Array#[]の動きを変えたいときには、以下の一行をはさめばいいと。

class Array;def [](i) self.fetch(i) end;end