English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ein Operator ist ein spezielles Symbol, das dem Interpreter sagt, welche spezifische mathematische oder logische Operation ausgeführt werden soll. Lua bietet folgende Arten von Operator:
Arithmetische Operator
Verknüpfungsoptionen
Logische Operatoren
Andere Operatoren
Die folgende Tabelle zeigt die häufig verwendeten arithmetischen Operator im Lua-Sprache, gesetzt der Wert von A ist10, der Wert von B ist 20:
Operator | Beschreibung | 示例 |
---|---|---|
+ | Addition | A + B Ausgabeergebnis 30 |
- | Subtraktion | A - B Ausgabeergebnis -10 |
* | Multiplikation | A * B Ausgabeergebnis 200 |
/ | Division | B / A w Ausgabeergebnis 2 |
% | Rest | B % A Ausgabeergebnis 0 |
^ | Potenz | A^2 Ausgabeergebnis 100 |
- | Betragszeichen | -A Ausgabeergebnis -10 |
Wir können durch folgende Beispiele das Verständnis der Anwendung der arithmetischen Operator überdenken:
a = 21 b = 10 c = a + b print("Zeile 1 - der Wert von c ist " , c ) c = a - b print("Zeile 2 - der Wert von c ist " , c ) c = a * b print("Zeile 3 - der Wert von c ist " , c ) c = a / b print("Zeile 4 - der Wert von c ist " , c ) c = a % b print("Zeile 5 - der Wert von c ist " , c ) c = a^2 print("Zeile 6 - der Wert von c ist " , c ) c = -a print("Zeile 7 - der Wert von c ist " , c )
以上程序执行结果为:
Zeile 1 - der Wert von c ist 31 Zeile 2 - der Wert von c ist 11 Zeile 3 - der Wert von c ist 210 Zeile 4 - der Wert von c ist 2.1 Zeile 5 - der Wert von c ist 1 Zeile 6 - der Wert von c ist 441 Zeile 7 - der Wert von c ist -21
Die folgende Tabelle zeigt die häufig verwendeten Verknüpfungsoptionen im Lua-Sprache, gesetzt der Wert von A ist10, der Wert von B ist 20:
Operator | Beschreibung | 示例 |
---|---|---|
== | Gleich, überprüft, ob zwei Werte gleich sind, gleich gibt true zurück, sonst false | (A == B) ist false. |
~= | Ungleich, überprüft, ob zwei Werte gleich sind, ungleich gibt true zurück, sonst false | (A ~= B) ist true. |
> | Größer, gibt true zurück, wenn der linke Wert größer ist als der rechte Wert, sonst false | (A > B) ist false. |
< | Kleiner, gibt false zurück, wenn der linke Wert größer ist als der rechte Wert, sonst true | (A < B) ist true. |
>= | Größer oder gleich, gibt true zurück, wenn der linke Wert größer oder gleich dem rechten Wert ist, sonst false | (A >= B) gibt false zurück. |
<= | Kleiner oder gleich, gibt true zurück, wenn der linke Wert kleiner oder gleich dem rechten Wert ist, sonst false | (A <= B) gibt true zurück. |
Wir können durch folgende Beispiele das Verständnis der Anwendung der Verknüpfungsoperator überdenken:
a = 21 b = 10 if( a == b ) then print("Zeile 1 - a ist gleich b" ) else print("Zeile 1 - a ist ungleich b" ) end if( a ~= b ) then print("Zeile 2 - a ist ungleich b" ) else print("Zeile 2 - a ist gleich b" ) end if ( a < b ) then print("Zeile 3 - a ist kleiner als b) else print("Zeile 3 - a ist größer als oder gleich b) end if ( a > b ) then print("Zeile 4 - a ist größer als b) else print("Zeile 5 - a ist kleiner als oder gleich b) end -- Ändern Sie den Wert von a und b a = 5 b = 20 if ( a <= b ) then print("Zeile 5 - a ist kleiner als oder gleich b) end if ( b >= a ) then print("Zeile 6 - b ist größer als oder gleich a) end
以上程序执行结果为:
Zeile 1 - a unterscheidet sich von b Zeile 2 - a unterscheidet sich von b Zeile 3 - a ist größer als oder gleich b Zeile 4 - a ist größer als b Zeile 5 - a ist kleiner als oder gleich b Zeile 6 - b ist größer als oder gleich a
Die folgende Tabelle listet die häufig verwendeten logischen Operatoren in der Lua-Sprache auf, wobei A den Wert true und B den Wert false hat:
Operator | Beschreibung | 示例 |
---|---|---|
and | Logischer Undoperator. Gibt A zurück, wenn A false ist,否则返回 B. | (A and B) ist false. |
or | Logischer Oderoperator. Gibt A zurück, wenn A true ist,否则返回 B. | (A or B) ist true. |
not | Logischer Negationsoperator. Er gibt das Gegenteil des logischen Ergebnisses zurück, wenn die Bedingung true ist, dann ist der logische Negativoperator false. | not(A and B) ist true. |
Wir können durch die folgenden Beispiele ein tieferes Verständnis für die Anwendung der logischen Operatoren gewinnen:
a = true b = true if ( a and b ) then print("a and b - Bedingung ist true) end if ( a or b ) then print("a or b - Bedingung ist true) end print("---------Trennlinie---------" ) -- Ändern Sie den Wert von a und b a = false b = true if ( a and b ) then print("a and b - Bedingung ist true) else print("a and b - Bedingung ist false) end if ( not( a and b) ) then print("not( a and b) - Bedingung ist true) else print("not( a and b) - Bedingung ist false) end
以上程序执行结果为:
a and b - Bedingung ist true a or b - Bedingung ist true ---------Trennlinie--------- a and b - Bedingung ist false not( a and b) - Bedingung ist true
Die folgende Tabelle listet die Verknüpfungsoptionen und die Operatoren zur Berechnung der Länge von Tabellen oder Zeichenfolgen in der Lua-Sprache auf:
Operator | Beschreibung | 示例 |
---|---|---|
.. | Verknüpfung zweier Zeichenfolgen | a..b ,wobei a "Hello " und b "World" sind, gibt das Ergebnis "Hello World" aus. |
# | Einzeiliger Operator, gibt die Länge einer Zeichenfolge oder Tabelle zurück. | #"Hello" gibt zurück 5 |
Wir können durch die folgenden Beispiele ein tieferes Verständnis für die Anwendung der Verknüpfungsoptionen und der Operatoren zur Berechnung der Länge von Tabellen oder Zeichenfolgen gewinnen:
a = "Hello " b = "World" print("连接字符串 a 和 b ", a..b ) print("b 字符串长度 ",#b ) print("字符串 Test 长度 ",#"Test" ) print("基础教程网网址长度 ",#"de.oldtoolbag.com"
以上程序执行结果为:
连接字符串 a 和 b Hello World b 字符串长度 5 字符串 Test 长度 4 基础教程网网址长度 14
从高到低的顺序:
^ not - (unary) * / % + - .. < > <= >= ~= == and or
除了 ^ 和 .. 外所有的二元运算符都是左连接的。
a+i < b/2+1 <--> (a+i) < ((b/2)+1) 5+x^2*8 <--> 5+((x^2)*8) a < y and y <= z--> (a < y) and (y <= z) -x^2 <--> -(x^2) x^y^z--x^(y^z)
我们可以通过以下示例来更加透彻的了解 Lua 语言运算符的优先级:
a = 20 b = 10 c = 15 d = 5 e = (a + b) * c / d;-- ( 30 * 15 ) / 5 print("(a + b) * c / d 运算值为: e = ((a + b) * c) / d; -- (30 * 15 ) / 5 print("((a + b) * c) / d 运算值为: e = (a + b) * (c / d);-- (30) * (15/5) print("(a + b) * (c / d) 运算值为: e = a + (b * c) / d; -- 20 + (150/5) print("a + (b * c) / d 运算值为:
以上程序执行结果为:
(a + b) * c / d 运算值为: 90.0 ((a + b) * c) / d 运算值为: 90.0 (a + b) * (c / d) 运算值为: 90.0 a + (b * c) / d 运算值为: 50.0