tap_each {|item| ... } -> Enumerator::LazyRuby 4.1 から[permalink][rdoc][edit]-
各要素をブロックに渡して評価しますが、要素そのものを変更したり、以後の列挙に影響を与えたりはしません。
新しい Enumerator::Lazy を返します。
遅延評価の連鎖を崩さずに、デバッグやログ出力のために要素を覗き見たいときに使います。
- [EXCEPTION]
ArgumentError: - ブロックを指定しなかった場合に発生します。
p (1..).lazy.tap_each { |x| puts "got #{x}" }.select(&:even?).first(3) # => got 1 # got 2 # got 3 # got 4 # got 5 # got 6 # [2, 4, 6][SEE_ALSO] Object#tap
- [EXCEPTION]