in Ihren Skripten verwenden. Alle Information über Lua Funktion finden Sie
auf Seite 216. Wir erweitern unser kleines Beispiel nun um eine Begrüßungs-
Funktion.
function g r e e t i n g ( t e x t , name )
1
2
p r i n t ( t e x t . . " " . . name )
end
3
4
5
g r e e t i n g ( " H e l l o " , " Bob " )
Geben Sie alle Zeilen im SKETCH Buffer des Editors ein und drücken Sie
um das Skript auszuführen.
Die Funktion greeting wird mit zwei Argumenten aufgerufen. Dem Begrü-
ßungstext und einem Namen. In der Funktion werden beide übergebenen Pa-
rameter und ein Leerzeichen " " mit Hilfe des Lua String Verkettungs Opera-
tors .. zusammengefügt und ausgegeben.
Hello Bob
17.1.2
Funktionen mit mehreren Rückgabewerten
Unsere greeting Funktion hatte keinen Rückgabewert. Sie gibt lediglich die
zusammengefügten Argumente aus. Im Gegensatz zu anderen Sprachen er-
laubt Lua Funktionen mit einer beliebigen Anzahl von Rückgabewerten, siehe
Seite 216. Stellen Sie sich eine Funktion vor, die zwei Integer Zahlen dividiert
und sowohl den Quotient als auch den Rest liefert
1
function d i v i d e ( d i v i d e n d , d i v i s o r )
2
l o c a l remainder = d i v i d e n d % d i v i s o r
3
l o c a l q u o t i e n t = ( d i v i d e n d
4
r e t u r n q u o t i e n t , remainder
5
end
6
7
p r i n t ( d i v i d e ( 10 , 3 ) )
Da Lua alle Zahlen als Fliesskommawerte behandelt können wir nicht einfach
10 durch 3 teilen. Wir erhielten 3,3333333333333. Stattdessen berechnen wir
zunächst den Rest mit Hilfe des Lua Modulo Operators % in Zeile 2.
Indem wir den Rest vom Dividend vor dem Teilen abziehen (Zeile 3) erhalten
wir ein ganzzahliges Ergebnis für den Quotienten.
Das Schlüsselwort local in Zeile 2 und 3 schränkt die 'Sichtbarkeit' bzw. den
Anwendungsbereich der Variablen remainder und quotient auf den umge-
benden Code Block (hier die Funktion divide ein. Näheres dazu auf Seite
112.
Zeile 4 letztendlich gibt beide Werte per Komma getrennt zurück.
17.1.3
String Verarbeitung und Manipulation
Lua Strings können beliebige Zeichen und Bytewerte enthalten. Das Stringen-
de ist nicht durch ein besonderes Zeichen gekennzeichnet. Eine Sonderbe-
handlung des Null Bytes wie z.B. bei C/C++ ist daher nicht erforderlich. Und:
Unter Lua ist es besonders einfach, Zahlen und Strings zu mischen. Dies macht
1
Dies ist lediglich ein Beispiel und funktioniert nur bei positiven Integer Zahlen!
1
.
remainder ) / d i v i s o r
> 3
1
17.1. ERSTE SCHRITTE
F5
195