Ein Betreiber ist ein Symbol für die Ausführung einer Operation oder einer bedingten Bewertung.
Logisch
Logische Operatoren geben Werte zurück, abhängig von den booleschen Werten der angegebenen Argumente.Wenn ein Argument nicht false oder nil ist, bewertet der Operator es als true .Im Gegensatz zu vielen anderen Sprachen betrachtet Luau sowohl Null als auch die leere Zeichenkette als true .Die folgende Tabelle fasst zusammen, wie logische Operatoren in Konditionen funktionieren.
Operator | Beschreibungen |
---|---|
and | Wertet als true nur aus, wenn beide Bedingungen wahr sind |
or | Wertet als true aus, wenn eine der Bedingungen wahr ist |
not | Wertet als das Gegenteil der Bedingung |
und
Der Binäroperator and gibt eines der beiden Argumente zurück.Wenn das erste Argument auf true bewertet wird, gibt es das zweite Argument zurück.Ansonsten gibt es das erste Argument zurück.
print(4 and 5) -- 5print(nil and 12) -- nullprint(false and 12) -- falschprint(false and true) -- falschprint(false and false) -- falschprint(true and false) -- falschprint(true and true) -- true
Du kannst and verwenden, um mehrere Bedingungen in Kontrollstrukturen wie if Aussagen und while Schleifen zu testen.Zum Beispiel testet die folgende if - then Aussage, dass zwei Bedingungen beide wahr sind:
local pasta = truelocal tomatoSauce = trueif pasta == true and tomatoSauce == true thenprint("We have spaghetti dinner")elseprint("Something is missing...")end-- Output: We have spaghetti dinner
or
Der Binäroperator or gibt eines der beiden Argumente zurück.Wenn das erste Argument auf true bewertet wird, gibt es das erste Argument zurück.Ansonsten gibt es das zweite Argument zurück.
local y = x or 1print(y) -- 1, weil x nicht existiert und daher null istlocal d = falselocal e = d or 1print(e) -- 1, weil d falsch istprint(4 or 5) -- 4print(nil or 12) -- 12print(false or 12) -- 12print(false or true) -- wahrprint(false or false) -- falschprint(true or false) -- wahrprint(true or true) -- true
Du kannst or verwenden, um komplexe logische Tests in Kontrollstrukturen durchzuführen.Zum Beispiel prüft die folgende if ‑ then Aussage, ob zwei Bedingungen wahr sind oder eine dritte Bedingung wahr ist:
local pasta = falselocal tomatoSauce = truelocal garlicBread = trueif (pasta == true and tomatoSauce == true) or garlicBread == true thenprint("We have either spaghetti dinner OR garlic bread")elseprint("Something is missing...")end-- Output: We have either spaghetti dinner OR garlic bread
nicht
Der Binäroperator not gibt den entgegengesetzten booleschen Wert des Arguments zurück.Wenn das Argument false oder nil ist, gibt es true zurück.Ansonsten gibt es false zurück.
print(not true) -- falschprint(not false) -- wahrprint(not nil) -- wahrprint(not "text") -- falschprint(not 0) -- false
Du kannst den not -Operator verwenden, um eine Bedingung oder Schleife auszulösen, wenn eine Variable false oder nil ist.
local nilVariable -- Variable wird erklärt, hat aber keinen Wert, also ist sie nulllocal falseVariable = false -- Variable wird mit dem Wert false deklariertif not nilVariable thenprint(nilVariable) -- Gibt "null" aus, weil null nicht wahr istendif not falseVariable thenprint(falseVariable) -- Gibt "false" aus, weil falsch nicht wahr istend
Du kannst auch den not Operator verwenden, um das Gegenteil einer gesamten Mehrbedingungs statement zu testen.Im folgenden Codebeispiel sind die if - then Bedingungstests, die besagen, dass es weder wahr ist, dass drei größer als vier sind, noch ist es wahr, dass fünf größer als vier sind.
local three = 3local four = 4local five = 5if not (three > four or five < four) thenprint("Three is less than 4 and five is greater than 4.")end-- Output: Three is less than 4 and five is greater than 4.
Relationell
Relationale Operatoren vergleichen zwei Parameter und geben eine boolean : true oder false zurück.
Operator | Beschreibung | Beispiel | Verknüpfte Metamethode |
---|---|---|---|
== | Äquivalent zu | 3 == 5 → false | __eq |
~= | Nicht gleich | 3 ~= 5 → true | |
> | Größer als | 3 > 5 → false | |
< | Weniger als | 3 < 5 → true | __lt |
>= | Größer als oder gleich | 3 >= 5 → false | |
<= | Weniger als oder gleich | 3 <= 5 → true | __le |
Arithmetik
Luau unterstützt die üblichen binären Operatoren zusammen mit der Exponentialrechnung, dem Modulus und der einfachen Negation.
Operator | Beschreibung | Beispiel | Verknüpfte Metamethode |
---|---|---|---|
+ | Hinzufügung | 1 + 1 = 2 | __add |
- | Subtraktion | 1 - 1 = 0 | __sub |
* | Multiplikation | 5 * 5 = 25 | __mul |
/ | Teilung | 10 / 5 = 2 | __div |
// | Bodenteilung | 10 // 4 = 2``-10 // 4 = -3 | __idiv |
^ | Exponentialisierung | 2 ^ 4 = 16 | __pow |
% | Modul | 13 % 7 = 6 | __mod |
- | Einzelne Verneinung | -2 = 0 - 2 | __unm |
Verbindliche Zuweisung
Du kannst komplexe Zuweisungsoperatoren verwenden, um eine Variable mit dem Ergebnis einer Operation zu setzen, bei der der erste Parameter der aktuelle Wert der Variable ist.
Die Operation in einer Verbindungszuweisung tritt einmal auf.Wenn zum Beispiel eine Ausdruck einen zufälligen Index in einer Tabelle erzeugt, verwendet Luau denselben Index sowohl für die Operation als auch für die Zuweisung.
In den folgenden Beispielen gehen wir von local x = 3 aus.
Operator | Betrieb | Beispiel | Neuer Wert von x |
---|---|---|---|
+= | Hinzufügung | x += 2 | 5 |
-= | Subtraktion | x -= 2 | 1 |
*= | Multiplikation | x *= 2 | 6 |
/= | Teilung | x /= 2 | 1.5 |
//= | Bodenteilung | x //= 2 | 1 |
%= | Modul | x %= 2 | 1 |
^= | Exponentialisierung | x ^= 2 | 9 |
..= | Konkatination | x ..= " World!" | "3 World!" |
Sonstiges
Verschiedene Betreiber umfassen Konkatenz und Länge .
Operator | Beschreibung | Beispiel | Verknüpfte Metamethode |
---|---|---|---|
.. | Verbindet zwei Zeichenketten | print("Hello " .. "World!") | __concat |
# | Länge des Tisches | Wenn tableVar = {1, 2, 3} , dann #tableVar == 3 . | __len |