KAPITEL 17. SCHNELLEINSTIEG IN LUA
17.2.9.3
Logische Operatoren
Lua bietet die folgende logischen Operatoren in Ausdrücken: and, or und not.
Alle logischen Operatoren verhalten sich alle auf gleiche Art und Weise. Alle
liefern entweder ein true oder false. Als Spezialfall wird der Wert nil als false
verarbeitet.
and und or bieten eine Kurzauswertung: Sie werten den zweiten Operanden
nur aus, wenn es auf Grund des ersten Wertes nötig ist. Ein paar Beispiele:
1
p r i n t ( 4 and 5 )
2
p r i n t ( 4 or 5 )
3
p r i n t ( f a l s e and t r u e )
4
p r i n t ( a and 1 )
5
p r i n t ( not f a l s e )
17.2.9.4
String Verkettungs-Operator
Zwei aufeinander folgende Punkte .. bezeichnen den String Verkettungs-Operator
in Lua. Ähnlich dem binären '+' Operator addiert dieser zwei Zeichenketten zu
einer, indem er zweite an die erste anhängt. Zahlen werden dabei automatisch
in Strings umgewandelt. Beachten Sie aber, das auf eine Zahl mindestens ein
Leerzeichen folgen muß, da Lua sonst das erste der beiden Punkte .. als
Dezimalpunkt betrachtet und der ganze Ausdruck ungültig wird.
1
p r i n t ( " H e l l o " . . " World " )
2
p r i n t ( 100 . . " sec " )
Der Verkettungs-Operator liefert 'immer' eine neue Zeichenkette und läßt die
beiden Operanden unverändert.
17.2.9.5
Der Längen-Operator
Der Längen-Operator ist definiert als # und liefert die Anzahl der Zeichen einer
Zeichenkette oder die Anzahl von Einträgen in einer Tabelle (sofern diese keine
Lücken ausweist).
1
p r i n t ( #" H e l l o World " )
17.2.9.6
Rangfolge
Die folgende Tabelle listet alle Lua Operatoren in der Reihenfolge ihrer Priorität
(von höchster zu niedrigster Priorität).
^
not
#
-(unary)
/
%
*
+
-
..
<
>
<=
and
or
Wenn Sie Zweifel über die Ausführungsreihenfolge habe, verwenden Sie Klam-
mern. Das macht Ihren Code nicht nur lesbarer sondern vermeidet unnötiges
Nachschlagen in diesem Handbuch.
214
> 5
> 4 ( s h o r t c u t e v a l u a t i o n )
> f a l s e ( s h o r t c u t e v a l u a t i o n )
> n i l , because a wasn ' t s p e c i f i e d
> t r u e
> H e l l o World
> 100sec
> 11
>=
~=
==