In Kotlin besteht die Möglichkeit, Funktionen als Werte zu behandeln und sie in Variablen zu speichern. Dabei gibt es zwei grundlegende Ansätze: die Zuweisung mittels eines Lambda-Ausdrucks oder die Verwendung einer Funktionsreferenz. Dies ist nützlich, wenn man Funktionen als Argumente an andere Funktionen übergeben möchte oder sie dynamisch zur Laufzeit ändern möchte.
Zuweisung mittels eines Lambda-Ausdrucks
In einem weiteren Kapitel werden wir uns mit dem Thema Lambdas sehr detailliert beschäftigen. An dieser Stelle genügen uns zunächst die grundlegenden Kenntnisse darüber.
Lambda-Ausdrücke sind kompakte Codeabschnitte, die spezifische Aktionen durchführen, und bieten eine abgekürzte Darstellung von Funktionen. Lambdas werden häufig auch als Lambda-Funktionen bezeichnet.
Die Syntax von Lambda-Ausdrücken in Kotlin besteht aus geschweiften Klammern { }, die den Code des Lambda-Ausdrucks umschließen, und optional einer Liste von Parametern, die vor dem Pfeil -> angegeben werden. Hier ist ein Beispiel für die allgemeine Syntax eines Lambda-Ausdrucks:
Ein konkretes Beispiel für einen Lambda-Ausdruck, der zwei Zahlen addiert, sieht folgendermaßen aus:
In diesem Beispiel wird der Lambda-Ausdruck in der Variable add gespeichert. Das Lambda erwartet zwei Int-Parameter und gibt einen Int-Wert zurück. Der Code innerhalb der geschweiften Klammern führt die Berechnung durch, in diesem Fall die Addition von a und b. Innerhalb der main()-Funktion wird die definierte Lambda-Funktion mithilfe des Variablennamens add aufgerufen und die Argumente 3 und 5 werden dabei an die Funktion übergeben.
Funktionsreferenz in Kotlin
Eine Funktionsreferenz ist eine Möglichkeit, auf eine bereits deklarierte Funktion zu verweisen, ohne sie direkt aufzurufen.
In diesem Beispiel definieren wir eine Funktion namens sum, die zwei Ganzzahlen addiert, und speichern eine Referenz auf diese Funktion in einer Variable namens addFunction. Der Doppelkolon-Operator :: wird verwendet, um auf die Funktion sum zu verweisen.
Man kann auch den Wert einer Variable, die eine Funktionsreferenz enthält, dynamisch ändern. Dabei muss der neue Wert mit dem Typ der Variable übereinstimmen.
Die Verwendung von Funktionsreferenzen in Kotlin bietet eine Reihe von Vorteilen, die die Flexibilität, Modularität und Wartbarkeit von Code verbessern.