O'Reilly logo

Die Programmiersprache Ruby by Yukihiro Matsumoto, David Flanagan

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

6.6 Closures

In Ruby sind Procs und Lambdas Closures. Der Begriff »Closure« stammt aus den frühen Tagen der Informatik; er bezieht sich auf ein Objekt, das sowohl eine aufrufbare Funktion als auch eine Variablenbindung für diese Funktion ist. Wenn Sie eine Proc oder ein Lambda erzeugen, enthält das resultierende Proc-Objekt nicht nur den ausführbaren Block, sondern auch Bindungen für alle Variablen, die von diesem Block verwendet werden.

Sie wissen bereits, dass Blöcke lokale Variablen und Methodenargumente nutzen können, die außerhalb des Blocks definiert werden. Im folgenden Code verwendet der mit dem Iterator collect verknüpfte Block beispielsweise das Methodenargument n:

# Jedes Element des Arrays data mit n multiplizieren def multiply(data, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required