4

Ruby 1.8.7以前でEnumerable::each_with_indexは、引数を受け入れませんでした。Ruby 1.9では、任意の数の引数を受け入れます。ドキュメント/コードは、それらの引数をに渡すだけであることを示しています::each。組み込みの標準ライブラリEnumerablesでは、Enumerableの::eachメソッドはパラメータを予期していないため、引数を渡すとエラーが発生すると思います。

::eachしたがって、これは、引数を受け入れるメソッドを作成する独自のEnumerableを作成する場合にのみ役立つと思います。これが役立つ例は何ですか?

この変更による他の非自明な結果はありますか?

4

1 に答える 1

2

私はいくつかの宝石コードを調べましたが、その機能の使用法はほとんど見つかりませんでした。それがするもの、spreadsheet

def each skip=dimensions[0], &block
  skip.upto(dimensions[1] - 1) do |idx|
    block.call row(idx)
  end
end

私はそれが重要な変更であるとは本当に思っていません:#eachモジュールEnumerableをミックスインするクラスの基本メソッドであり、追加されたメソッド(map、select、...)は引数を受け入れません。

于 2011-10-29T07:21:42.233 に答える