(続)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