Array#index / Enumerable#find_index

Array#index e$B$He(B Enumerable#find_index
e$B$,$+$V$C$F$$$k$N$G$9$,!“e(B
Enumerable#index e$B$,$”$l$Pe(B Enumerable#find_index
e$B$OITMW$@$H;W$&$N$G$9$,!"e(B
e$B$$$+$,$G$7$g$&$+!)e(B

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

e$BJX>h$7$F$_$?!#e(B

At Wed, 14 May 2008 02:05:43 +0900,
[email protected] wrote:

Array#index と Enumerable#find_index がかぶっているのですが、
Enumerable#index があれば Enumerable#find_index は不要だと思うのですが、
いかがでしょうか?

 これを同じにした経緯は [ruby-dev:34313] です。

 Enumerable#find_index の index への改名を提案しなかったのは、
Array以外のEnumerableなクラスで index() という名前が他の意味で
使われ(てい)る可能性があると考えたからです。

 実際、(1.9ではもはや String は Enumerable ではありませんが)
String#index は検索方法が違いますし、属性として index を持つ
クラスもありふれていそうです。

 なので、 Enumerable では控えめな find_index という名前が妥当
ではないかと思います。

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:34680] Array#index / Enumerable#find_index”
on Wed, 14 May 2008 02:05:43 +0900, [email protected] writes:

|Array#index e$B$He(B Enumerable#find_index e$B$,$+$V$C$F$$$k$N$G$9$,!“e(B
|Enumerable#index e$B$,$”$l$Pe(B Enumerable#find_index e$B$OITMW$@$H;W$&$N$G$9$,!"e(B
|e$B$$$+$,$G$7$g$&$+!)e(B

knue$B$5$s$+$i$b;XE&$,$"$j$^$7$?$,!"e(Bindexe$B$Oe(BEnumerablee$B$K;H$&$K$Oe(B
e$B0lHLE*$9$.$ke(B(e$B=EJ#$7$=$&e(B)e$B$J$N$G;D$=$&$H;W$$$^$9!#e(B