Unterschied zwischen lambda und def method_name in Ruby

8

Ich lese in Spitzhacke 1.9 mit und der Autor verwendet Lambda wie folgt:

%Vor%

Meine Frage ist: Wie ist das besser / schlechter / anders als nur eine Methode zu definieren, die dasselbe tut? Wie so:

%Vor%

Für mich wirkt die Lambda-Syntax viel verwirrender und spaghettiartiger.

    
Josh 18.04.2012, 20:04
quelle

2 Antworten

13

Lambdas:

  • sind Variationen von Proc s ,
  • kann in Blöcke ,
  • konvertiert werden
  • Beginnen Sie keinen neuen Abschlussbereich (das bedeutet, dass Sie auf Variablen zugreifen können, die außerhalb des Geltungsbereichs Ihres Lambda, im Gegensatz zu def ),
  • kann als Variable übergeben werden.

Ich empfehle den diesen Artikel , der erklärt Procs, Blöcke und Lambdas.

Bearbeiten: Dieser Link ist veraltet. Weitere Informationen finden Sie in diesem Artikel

    
Matt Huggins 18.04.2012, 20:22
quelle
3

Der Vorteil, den Sie bei der Definition eines Lambdas haben, besteht darin, dass Sie dieses Lambda-Objekt als Attribut an eine andere Methode übergeben können.

%Vor%

Sie können es dann wie folgt verwenden:

%Vor%

Und das Schöne daran ist, dass du nur einmal vom Code des Callbacks geschrieben hast, aber 3 mal benutzt hast ....

Ich würde Ihnen empfehlen, sich diesen Link zum Weiterlesen:)

    
Deleteman 18.04.2012 20:10
quelle

Tags und Links