Problem, das in einem Block / Lambda nachgibt

8

Ich habe den folgenden Ruby-Code:

%Vor%

Das geht natürlich nicht.

%Vor%     
AJM 13.02.2011, 05:33
quelle

4 Antworten

12

Lambdas akzeptieren Blöcke implizit nicht wie reguläre Methoden, daher kann Ihr func1 nicht liefern. Tun Sie dies stattdessen:

%Vor%

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:

%Vor%     
wuputah 13.02.2011, 05:37
quelle
4

Nur in Ruby 1.9:

%Vor%     
Ken Bloom 13.02.2011 05:39
quelle
1
%Vor%     
Ken Bloom 13.02.2011 13:22
quelle
0

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.

    
Mike Stitt 08.08.2017 17:29
quelle

Tags und Links