Why does Enumerator.new require a yielder object?

Consider a simple Enumerator as follows:

natural_numbers = Enumerator.new do |yielder|
  number = 1
  loop do
    yielder.yield number
    number += 1
  end
end

My question is: why does a ruby ​​need us to generate income on a yielder? Another way: why can't we replace yielder.yield numberwith yield number? In this example, it would be similar to the same if it were allowed. Are there examples where yielder is used in a non-trivial way? If so, can you give one? If not, what is the purpose of yielder?

Thank.

+5
source share
1 answer

100% , , yield () , , yield: , natural_numbers ; , Enumerator, Enumerator. , Yielder#yield , Ruby yield .

, Enumerator, yield.

+3

All Articles