1.9.0
雑用にスクリプトを書いてて,こんな処理が欲しくなった.
idx = %w[max abs sin cos].index{|x| x=~/\Aa/ }
リファレンスにはあるのに,どうして動かないんだ!と思ったら1.9 featureか.
1.9に乗り換えようか.
1.8系にバックポートしてくれないかな.ていうか自分で作ればよくない?
すでに誰かが作っているような気がしなくもないけど.
class Array def index_1_9( val=nil,&block) return send(:index_1_8, val) unless block_given? each_with_index {|x,i| return i if block.call(x)} nil end alias_method :index_1_8, :index alias_method :index, :index_1_9 end a = %w[max abs sin cos] p a.index("sin") #=> 2 p a.index {|x| x=~/\Aa/ } #=> 1
すばらしい拡張性だな.
rindexは?