Call-by-name, Call-by-value

Normalerweise sind Parameter für Funktionen immer By-value-Parameter, das heißt, der Wert eines Parameters wird ermittelt, bevor er an die Funktion übergeben wird. In den meisten Fällen ist das auch das Verhalten, das wir wünschen und erwarten.

Aber was ist, wenn wir eine Funktion schreiben müssen, die als Parameter einen Ausdruck annimmt, dessen Wert erst dann ermittelt werden soll, wenn er innerhalb unserer Funktion ausgewertet wird? Für diesen Fall bietet Scala By-name-Parameter an.

Ein By-name-Parameter wird angegeben, indem man wie folgt die Klammern weglässt, die normalerweise einen Funktionsparameter umgeben:

def myCallByNameFunction(callByNameParameter: => ReturnType)

Ohne diese syntaktische Abkürzung sähe die ...

Get Programmieren mit Scala now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.