Я пытаюсь уловить разницу между регулярным использованием yield
в функции и yielder
, используемым с Enumerable.
При регулярном использовании yield
я имею в виду:
def fun
yield
end
fun do
puts "hello"
end
И под словом перечислителя я имею в виду:
def fun2
Enumerator.new do |yielder|
(0..2).each { |x| yielder << x }
end
end
fun2.each do |x|
puts x
end
Как я могу кратко понять разницу между yield
и yielder
с точки зрения потока управления и другие важные различия? Они даже сопоставимы? Или урожай действительно не имеет отношения к yield
несмотря на наименование?