Enumerable#find_indexとArray#indexってかぶってるよね
機能がもろかぶっとる。統一しようぜとruby-devに提案してみた。
a = %w[a b C D e] a.index {|x| x =~ /^[A-Z]/ } # => 2 a.find_index {|x| x =~ /^[A-Z]/ } # => 2 a.index {|x| x =~ /^z/ } # => nil a.find_index {|x| x =~ /^x/ } # => nil (2..5).to_a.index(&:odd?) # => 1 (2..5).find_index(&:odd?) # => 1 (2..5).to_a.index(4) # => 2 (2..5).find_index(4) # => 2
Enumerable#cycleは一旦Arrayに保存するとのことだから、多くのArrayのメソッドをEnumerableに移すことができるような。
追記
indexは他の用途に使われうるからfind_indexという名前も残すというのがRuby開発者の考えかたのようだ。sendと__send__みたいなものだな。納得。