Frage

Gibt es "einfache" Erklärungen, was Procs und Lambdas sind in Ruby?

War es hilfreich?

Lösung

Lambdas (die auch in anderen Sprachen existieren) sind wie Ad-hoc-Funktionen, erstellt nur für eine einfache Verwendung, anstatt einige komplexe Aktionen auszuführen.

Wenn Sie eine Methode wie Array#collect verwenden, die einen Block in {} nimmt, sind Sie im Wesentlichen eine Lambda / proc / Block nur für die Verwendung dieser Methode zu schaffen.

a = [1, 2, 3, 4]
# Using a proc that returns its argument squared
# Array#collect runs the block for each item in the array.
a.collect {|n| n**2 } # => [1, 4, 9, 16]
sq = lambda {|n| n**2 } # Storing the lambda to use it later...
sq.call 4 # => 16

Siehe Anonyme Funktionen auf Wikipedia, und einige other SO Fragen für die Nuancen der lambda vs. Proc .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top