Lambdas akzeptieren Blöcke implizit nicht wie reguläre Methoden, daher kann Ihr func1
nicht liefern. Tun Sie dies stattdessen:
Insbesondere glaube ich, dass dies daran liegt, dass die Rendite die Kontrolle an den Block caller
zurücksendet, der keine Lambda-Aufrufe enthält. Der folgende Code funktioniert also wie erwartet:
Basierend auf Nikita Mischarin's Antwort hier: [ Ссылка , mag ich das:
%Vor%Er beantwortet meine Frage hier [ Können Sie in Ruby die lambda oder Proc Call-Methode verwenden, um einen Iterator aufzurufen? .
Indem der Iterator umschlossen wird, kann er willkürlich an andere Methoden übergeben werden und deren Blöcke iterieren.