Funktionen
Funktionen sind in TL-Script allgegenwärtig. Eine Funktion ist ein Skript-Ausdruck, der ein oder mehrere Eingaben benötigt, um ausgerechnet werden zu können. Die meisten Skripte, mit denen Oberflächenkomponenten in TopLogic parametrisiert werden, müssen als Funktionen geschrieben werden. Dabei erwartet das Skript i.d.R. eine Eingabe (Argument) aus der umgebenden Komponente. Neben selbst definierten Funktionen bietet TL-Script eine ganze Reihe von vordefinierte Funktionen.
Eine Funktion besteht aus der Deklaration eines Parameters, welcher die erwartete Eingabe benennt und einem Ausdruck, der sich auf diesen Parameter bezieht:
x -> someExpression($x)
Das obige Script definiert eine Funktion, die ein Argument x
erwartet und einen Wert durch Auswertung des Ausdrucks someExpression($x)
erzeugt. Dabei steht someExpression($x)
stellvertretend für einen beliebigen TL-Script-Ausdruck, der die Variable x
verwendet. In diesem Ausdruck kann auf den Wert des Funktionsarguments mit der Syntax $x
zugegriffen werden (siehe Variablen).
Eine Funktion, die mehrere Argumente erwartet, wird folgendermaßen geschrieben:
x -> y -> someExpression($x, $y)
Oben wird eine Funktion mit zwei Parametern x
und y
definiert.
Funktionen können außerdem in einer Variablen abgespeichert werden, um diese zu einem späteren Zeitpunkt aufzurufen (siehe Funktionenanwendung).
{
myFunc = x -> $x * 5;
$myFunc(10)
}
Obiges Script definiert eine Funktion, die ihr Argument mit 5
multipliziert und weist diese Funktion der Variablen myFunc
zu. Anschließend wird diese Funktion mit dem Wert 10
aufgerufen und liefert folglich den Wert 50
zurück.
Beispiele
Für Informationen zum Aufruf von Funktionen siehe Funktionenanwendung.
Funktion mit einem Parameter
x -> 5 * $x
Ausgabe: /
Die Eingabe für x
wird mit 5 multipliziert.
Funktion mit zwei Parametern
x -> y -> $x * $y
Ausgabe: /
Multipliziert die Eingaben von x
und y
miteinander.
Funktion in einer Variablen
{
multiply = x -> 5 * $x;
}
Ausgabe: /
Die Funktion zur Mulitplikation wird in der Variable multiply
gespeichert. Auf diese kann mit $multiply
zugegriffen werden, um sie zum Beispiel mit apply() auszuführen.