Operatoren
Lua verfügt über zahlreiche Operatoren.
arithmetische Operatoren
Arithmetische Operatoren wie +, -, *, / werden auf Zahlen angewendet. Da Zahlen immer Fließkommazahlen in Lua darstellen, sind Divisionen immer Gleitkomma-Divisionen:
1.0 / 2 -- result 0.5
1 / 2 -- result 0.5, not 0
1 - 3*4 -- result -11
41/10 -- result 4.1
Zuweisungsoperator
Die Zuordnung operator = überschreibt die Variable an der linken Seite mit dem Ergebnis der rechten Seite.
i = 10 - 2 -- result i==8
Operator ..
Der .. Operator verkettet Daten mit Zeichenketten (nach Umwandlung der Daten in eine Zeichenkette).
"At receiver: " .. 10.3 .. " dB"
-- result: "At receiver: 10.3 dB"
Vergleichsoperatoren
Vergleichsoperatoren vergleichen Werte. Sie werden immer auf true oder false ausgewertet.
1 == 1 -- result: `true`
2 == 1 -- result: `false`
2 <= 1 -- result: `false`
2 > 1 -- result: `true`
2 >= 1 -- result: `true`
2 ~= 1 -- inequality, result: `false`
-- etc
Logische Operatoren
Die logischen Operatoren and, or und not können logische Aussagen ausdrücken. Diese verarbeiten logische Werte und zeigen das folgende Verhalten:
not true -- result: `false`
not false -- result: `true`
false and x -- result: `false` (short-circuit)
true and x -- result: `x`
false or x -- result: `x`
true or x -- result: `true` (short-circuit)
and, or und not können auch mit nicht-booleschen Werten verwendet werden. Lua interpretiert nil als ob es false wäre. Alle anderen Werte werden als true-äquivalent interpretiert.
not 0 -- result: `false` since 0 is true-ish
not nil -- result: `true` since nil is false-ish