Ich habe eine Menge Probleme zu verstehen, wie return
funktioniert in Blöcken, Procs und Lambdas.Return-Anweisungen in Procs, Lambdas und Blöcke
Zum Beispiel im folgenden Fall, warum funktioniert batman_ironman_proc
arbeiten, während batman_yield
einen Fehler werfen?
def batman_ironman_proc
victor = Proc.new { return "Batman will win!" }
victor.call
"Iron Man will win!"
end
def batman_yield
yield
"Iron man will win!"
end
victor = Proc.new { return "Batman will win!" }
puts batman_ironman_proc
#batman_yield(&victor) === This code throws an error.
möglich Duplikat von [Verwenden von 'Rückkehr' in einem Ruby-Block] (http://stackoverflow.com/questions/2325471/using-return-in-a-ruby-block) – mgibsonbr
Hier: http: // stackoverflow. com/questions/1435743/why-does-explizite-return-make-a-Differenz-in-a-proc – fmendez
Ich weiß, dass Sie das von Codeacademy lernen. Ich habe dieselben Zweifel. Es ist ein anständiges Einführungs-Tutorial, aber Sie müssen Google viel suchen, um das Tutorial zu verstehen. –