Ruby 1.8.7以前では、Enumerable::each_with_index
は引数を受け入れていませんでした。 Ruby 1.9では、任意の数の引数を受け入れます。 Documentation/codeは、それらの引数を単に::each
に渡していることを示しています。組み込みの標準ライブラリEnumerableでは、Enumerableの::each
メソッドがパラメータを期待していないので、引数を渡すとエラーが発生すると思います。Enumerable :: each_with_indexは、オプションでRuby 1.9で引数を取るようになりました。どのような意味があるのか、そのユースケースは何ですか?
これは、引数を受け入れる::each
メソッドを作成する独自のEnumerableを作成する場合にのみ便利だと思います。これが役に立つと思われる例は何ですか?
この変更の他に明白な結果はありませんか?
'each_with_object'は引数を受け入れます。私はあまりにも議論されていないといいですね! –
@Andrewしかし、each_with_objectは偽装されているので、議論が必要なのは当然のことです。しかし、私は、それぞれに議論を許すかどうかは重要である(あるいは重要になる)か、それとも軽微なものかを問わず、このすべてのことについては本当にわからないということを認めなければなりません。いずれにしても、基本的な反復子である私は、何の引数も受け入れないでください。 – tokland
'reduce'と' each_with_object'の違いの1つは、ブロックが与えられていないときに後者が列挙子を返すことだけです。それほど大きな違いはありませんか? –