Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Enumeratorクラス > with_object
with_object(obj) -> Enumerator
[permalink][rdoc]with_object(obj) {|(*args), memo_obj| ... } -> object
繰り返しの各要素に obj を添えてブロックを繰り返し、obj を返り値として返します。
obj には任意のオブジェクトを渡すことができます。
ブロックが渡されなかった場合は、上で説明した繰り返しを実行し、 最後に obj を返す Enumerator を返します。
# 0,1,2 と呼びだす enumeratorを作る to_three = Enumerator.new do |y| 3.times do |x| y << x end end to_three_with_string = to_three.with_object("foo") to_three_with_string.each do |x,string| puts "#{string}: #{x}" end # => foo:0 # => foo:1 # => foo:2
[SEE_ALSO] Enumerable#each_with_object