5
考虑一个简单枚举是这样的:为什么Enumerator.new需要一个“yielder”对象?
natural_numbers = Enumerator.new do |yielder|
number = 1
loop do
yielder.yield number
number += 1
end
end
我的问题是:为什么红宝石要求我们的yielder对象调用的收益呢?换句话说:为什么我们不能用yield number
代替yielder.yield number
?在这个例子中,如果允许的话,它看起来是同样的东西。有没有例子说明yielder是以不平凡的方式使用的?如果是这样,你可以给一个吗?如果不是,Yielder的目的是什么?
谢谢。