次のような単純な列挙子を考えてみましょう。
natural_numbers = Enumerator.new do |yielder|
number = 1
loop do
yielder.yield number
number += 1
end
end
私の質問は、なぜルビーはyielderオブジェクトでyieldを呼び出す必要があるのですか? 別の言い方をすれば: に置き換えられないのはなぜyielder.yield number
ですかyield number
? この例では、許可されていれば同じものに見えます。自明ではない方法でyielderが使用されている例はありますか? もしそうなら、あなたはそれを与えることができますか?そうでない場合、yielder の目的は何ですか?
ありがとう。