Gibt es „einfache“ Erklärungen, was Procs und Lambdas sind in Ruby?
-
20-09-2019 - |
Frage
Gibt es "einfache" Erklärungen, was Procs und Lambdas sind in Ruby?
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