Ein Betreiber ist ein Symbol für die Ausführung eines Vorgangs oder einer Bedingungsevaluierung.
Logisch
Logische Operatoren geben Werte zurück, abhängig von denBoolean-Werten der angegebenen Argumente. Wenn ein Argument nicht false oder nil ist, dann bewertet der Operator es als true. Im Gegensatz zu vielen anderen Sprachen betrachtet Luau sowohl die leere Zeichen als auch die leere Zeichen als 1> true1>. Die folgende Tabelle
Betreiber | Beschreibungen |
---|---|
und | Bewertet als wahr nur, wenn beide Bedingungen wahr sind |
oder | Bewertet als wahr wenn eine der Bedingungen wahr ist |
nicht | Bewertet als das Gegenteil der Bedingung |
und
Der binäre Operator and gibt eines der beiden Argumente zurück. Wenn das erste Argument zu true evaluiert wird, gibt das zweite Argument zurück. Andernfalls gibt es das erste Argument zurück.
print(4 and 5) -- 5print(nil and 12) -- nichtsprint(false and 12) -- falschprint(false and true) -- falschprint(false and false) -- falschprint(true and false) -- falschprint(true and true) -- true
Sie können and verwenden, um mehrere Bedingungen in Kontrollstrukturen wie if-Anweisungen und 3> 4> while4> -Schleifen zu testen. Zum Beispiel testet die folgende 8> if8> — 1> then1> Anweisung, dass zwei
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
oder
Der binäre Operator or gibt eines der beiden Argumente zurück. Wenn das erste Argument zu true evaluiert wird, gibt es das erste Argument zurück. Andernfalls gibt es das zweite Argument zurück.
local y = x or 1print(y) -- 1, da x nicht existiert und deshalb null istlocal d = falselocal e = d or 1print(e) -- 1, da 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
Sie können or verwenden, um komplexe logische Tests in Kontrollstrukturen durchzuführen. Zum Beispiel testet die folgende if — 2> dann2> die folgende Anweisung, ob zwei Bedingungen wahr sind 5> oder5> ein drittes Bedingung ist wahr:
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 einfachen Operator not gibt den GegensatzBoolean-Wert des Argumentes zurück. Wenn das Argument false oder nil ist, gibt es den GegensatzBoolean zurück. 1> true1> . Andernfalls gibt es den GegensatzBoolean zurück. 4> false4> .
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 eine Schleife auszulösen, wenn eine Variable false oder nil ist.
local nilVariable -- Variable wird erklärt, hat aber keinen Wert, so dass es null istlocal falseVariable = false -- Variable wird mit dem Wert false deklariertif not nilVariable thenprint(nilVariable) -- Outputs "nil" porque nil ist nicht wahrendif not falseVariable thenprint(falseVariable) -- Gibt "false" aus, da falsch nicht wahr istend
Sie können auch den Operator not verwenden, um für das Gegenteil einer gesamten Multi-Condition-Anweisung zu testen. Im folgenden Codebeispiel testen die if — then Bedingungstests, dass es wahr ist, dass drei größer als vier sind, oder dass es wahr ist, 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.
Relationale
Relationale Operatoren vergleichen zwei Parameter und geben ein button zurück: true oder false.
Betreiber | Beschreibung | Beispiel | Verknüpfte Metamethode |
---|---|---|---|
== | Äquinivalent zu | 3 == 5 → falsch | __eq |
Nicht gleich | 3 5 → true | ||
> | Größer als | 3 > 5 → falsch | |
< | Unter | 3 < 5 → wahr | __lt |
>= | Größer als oder gleich | 3 >= 5 → falsch | |
Unter oder gleich | 3 <= 5 → wahr | __le |
Arithmetik
Lua unterstützt die üblichen Binärbetreiber zusammen mit Ausdruckskraft, Modus und Einfach-Negation.
Betreiber | 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 |
^ | Expansion | 2 ^ 4 = 16 | __pow |
% | Modul | 13% 7 = 6 | __mod |
- | Einheitliche Ablehnung | -2 = 0 - 2 | __unm |
Komponenten-Zuordnung
Du kannst Compound-Zuweisungsoperatoren verwenden, um eine Variable, die dem Ergebnis einer Operation entspricht, zu setzen, bei der der erste Parameter der aktuelle Wert der Variable ist.
Die Operation in einem Compound-Zweck-Zuweisung tritt einmal auf. Zum Beispiel, wenn eine Ausdruch in einer Tabelle einen zufälligen Index erzeugt, verwendet Luau den gleichen Index für die Operation und die Zuweisung.
In den folgenden Beispielen nehmen wir an, local x = 3 .
Betreiber | 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 |
^= | Expansion | x^=2 | 9 |
..= | Konzentration | x ..= "World!" | "3 Welt!" |
Sonstiges
Miscellaneous operators include Konzentration and Länge .
Betreiber | Beschreibung | Beispiel | Verknüpfte Metamethode |
---|---|---|---|
.. | Konzentriert zwei Zeichen | druck("Hallo " .. "World!" | __concat |
# | Länge des Tisches | Wenn tabelleVar = 1, 2, 3 , dann #tabelleVar == 3 . | __len |