each が返すのは self か?
結局 Enumerator#each の戻り値は object ではなく self っぽい。
String#each_byte の戻り値は () ではなく self っぽい。
self っぽいけど、本当に self なのか?
試してみた。
"NO RUBY, NO LIFE".each_byte{|b|} # => "NO RUBY, NO LIFE" # 戻り値は self っぽいが ... s = "NO RUBY, NO LIFE" t = "NO RUBY, NO LIFE" s.object_id # => 134583110 t.object_id # => 134583100 # 同じ文字列でも別のオブジェクト s.each_byte{|b|}.object_id # => 134583110 # やっぱり self だった [1, 1, 2, 3].each{|i|} # => [1, 1, 2, 3] # 戻り値は self っぽいが ... a = [1, 1, 2, 3] b = [1, 1, 2, 3] a.object_id # => 134628410 b.object_id # => 134628390 # 同じ内容でも別のオブジェクト a.each{|i|}.object_id # => 134628410 # やっぱり self だった