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, ...

Get Die Programmiersprache Ruby now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.