В Ruby урожайность Enumerable похожа на урожайность в любом случае? - PullRequest
2 голосов
/ 30 апреля 2020

Я пытаюсь уловить разницу между регулярным использованием 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 несмотря на наименование?

...