考虑一个像这样的简单枚举器:
natural_numbers = Enumerator.new do |yielder|
number = 1
loop do
yielder.yield number
number += 1
end
end
我的问题是:为什么 ruby 要求我们在 yielder 对象上调用 yield?换一种说法:为什么我们不能用yielder.yield number
替换yield number
?在这个例子中,如果允许的话,它看起来是一样的。是否有以非平凡方式使用 yielder 的示例?如果可以,可以给一个吗?如果不是,那么yielder的目的是什么?
谢谢。