Blöcke, Procs und Lambdas in Ruby: Subtile Unterschiede bei Closures
2025-05-21
Dieser Artikel untersucht die Unterschiede zwischen Blöcken, Procs und Lambdas in Ruby. Obwohl alle Code gruppieren, um ihn auszuführen, unterscheiden sie sich subtil: Procs sind Objekte, zuweisbar und mit Methoden aufrufbar, im Gegensatz zu Blöcken, die nur Teil der Syntax eines Methodenaufrufs sind; ein Methodenaufruf erlaubt maximal einen Block, aber mehrere Procs; Lambdas überprüfen die Argumentanzahl, Procs nicht; und Lambdas und Procs behandeln das Schlüsselwort `return` unterschiedlich. Der Artikel erklärt auch Closures, den Ursprung der Namen 'proc' und 'lambda' und behandelt die Lambda-Kalküle und anonyme Funktionen.
Entwicklung