17.2.8.2
Globale und lokale Variablen
In Lua existieren drei Arten von Variablen: Globale Variablen, lokale Variablen
und Tabellen (wir diskutieren Tabellen später).
Per Default sind alle Variablen global was bedeutet: Auf jede Variable kann
während der Programm Laufzeit zugegriffen werden. Globale Variablen sind
Teil eines 'globalen' Speicherorts oder besser gesagt Teil einer globalen Tabel-
le.
Wohin gegen lokale Variablen nur in ihrem jeweiligen Kontext oder Ausfüh-
rungsblock sichtbar sind, in dem Sie deklariert wurden.
1
y = 10
i f x == n i l then
2
l o c a l y = 5
3
4
x = 1
5
end
6
p r i n t ( x , y )
Es ist eine übliche Strategie für bessere Programme, lokale Variablen einzu-
setzen, wann immer sie nicht global verwendet werden. Zudem beugen lokale
Variablen unliebsame Seiteneffekten vor. Beispielsweise sollten Sie in Funktio-
nen möglichst nur lokale Variablen verwenden.
17.2.9
Operatoren
Operatoren sind Symbole, die Berechnungen auslösen, wenn sie auf Varia-
blen, Werte oder Ergebnisse von Ausdrücken angewendet werden. Lua unter-
stützt arithmetische Operatoren, Vergleichsoperatoren und logische Operato-
ren. Zusätzlich einen sehr nützlichen Operator zur Verkettung von Zeichenfol-
gen (Strings).
17.2.9.1
Arithmetische Operatoren
Lua verwendet die üblichen arithmetischen Operatoren: die binären + (Additi-
on), – (Subtraktion), * (Multiplikation), / (Division), % (Modulo), ^ (Exponent)
und unäre – (Negation) Operatoren.
+
-
*
Nicht vergessen! In Lua werden alle Zahlen intern durch Fließkommazahlen
mit doppelter Genauigkeit dargestellt.
17.2.9.2
Vergleichsoperatoren
Vergleichsoperatoren vergleichen Variablen, Werte oder Ausdrücke und liefern
immer ein true oder false. Lua unterstützt die folgenden vergleichenden- bzw.
relationalen Operatoren:
<
>
<=
Der Gleichheits-Operator == testet auf Gleichheit, das Gegenteil ist der Opera-
tor = der auf Ungleichheit prüft. Sie können alle Operatoren auf beliebige zwei
Werte anwenden, d.h. Zahlen und auch Zeichenketten (alle Vergleichsoperato-
ren arbeiten auch mit Zeichenketten). Sind beide Werte von unterschiedlichem
Typ behandelt sie Lua als ungleich.
Beachten Sie: Der Wert 0 liefert im Gegensatz zu anderen Sprachen kein false.
1
p r i n t ( " abc " < " d e f " )
2
p r i n t ( 0 or t r u e )
3
p r i n t ( f a l s e or t r u e )
> 1
10
/
%
^
>=
==
~=
> t r u e
> 0
> t r u e
17.2. DIE LUA SPRACHE
213