English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Un operatore è un simbolo speciale utilizzato per informare l'interprete di eseguire un'operazione matematica o logica specifica. Lua fornisce i seguenti tipi di operatori:
Operazioni aritmetiche
Operazioni relazionali
Operatori logici
其他运算符
La tabella seguente elenca gli operatori aritmetici comuni nel linguaggio Lua, assegnando un valore di 10 a A e 20 a B:
操作符 | 描述 | Esempio |
---|---|---|
+ | Addizione | A + B il risultato è 30 |
- | Sottrazione | A - B il risultato è -10 |
* | Moltiplicazione | A * B il risultato è 200 |
/ | Divisione | B / A il risultato è 2 |
% | Resto | B % A il risultato è 0 |
^ | Moltiplicazione esponenziale | A^2 il risultato è 100 |
- | Segno negativo | -A il risultato è -10 |
Possiamo utilizzare l'esempio seguente per comprendere meglio l'applicazione degli operatori aritmetici:
a = 21 b = 10 c = a + b print("Linea 1 - Il valore di c è ", c) c = a - b print("Linea 2 - Il valore di c è ", c) c = a * b print("Linea 3 - Il valore di c è ", c) c = a / b print("Linea 4 - Il valore di c è ", c) c = a % b print("Linea 5 - Il valore di c è ", c) c = a^2 print("Linea 6 - Il valore di c è ", c) c = -a print("Linea 7 - Il valore di c è ", c)
Il risultato dell'esecuzione del programma sopra è:
Linea 1 - Il valore di c è 31 Linea 2 - Il valore di c è 11 Linea 3 - Il valore di c è 210 Linea 4 - Il valore di c è 2.1 Linea 5 - Il valore di c è 1 Linea 6 - Il valore di c è 441 Linea 7 - Il valore di c è -21
La tabella seguente elenca i segni di operazione relazionale comuni nel linguaggio Lua, assegnando un valore di 10 a A e 20 a B:
操作符 | 描述 | Esempio |
---|---|---|
== | Uguale, verifica se due valori sono uguali, se lo sono restituisce true, altrimenti restituisce false | (A == B) è false. |
~= | Diverso, verifica se due valori sono uguali, se non lo sono restituisce true, altrimenti restituisce false | (A ~= B) è true. |
> | Maggiore, se il valore a sinistra è maggiore del valore a destra, restituisce true, altrimenti restituisce false | (A > B) è false. |
< | Meno, se il valore a sinistra è maggiore del valore a destra, restituisce false, altrimenti restituisce true | (A < B) è true. |
>= | Maggiore o uguale, se il valore di sinistra è maggiore o uguale al valore di destra, restituisce true, altrimenti restituisce false | (A >= B) restituisce false. |
<= | Minore o uguale, se il valore di sinistra è minore o uguale al valore di destra, restituisce true, altrimenti restituisce false | (A <= B) restituisce true. |
Possiamo comprendere meglio l'applicazione degli operatori relazionali attraverso l'esempio seguente:
a = 21 b = 10 if(a == b) then print("Linea 1 - a è uguale a b") else print("Linea 1 - a è diverso da b") end if(a ~= b) then print("Linea 2 - a è diverso da b") else print("Linea 2 - a è uguale a b") end if (a < b) then print("Linea 3 - a è minore di b") else print("Linea 3 - a è maggiore o uguale a b") end if (a > b) then print("Linea 4 - a è maggiore di b") else print("Linea 5 - a è minore o uguale a b") end -- 修改 a 和 b 的值 a = 5 b = 20 if (a <= b) then print("Linea 5 - a è minore o uguale a b") end if (b >= a) then print("Linea 6 - b è maggiore o uguale a a") end
Il risultato dell'esecuzione del programma sopra è:
Linea 1 - a è diverso da b Linea 2 - a è diverso da b Linea 3 - a è maggiore o uguale a b Linea 4 - a è maggiore di b Linea 5 - a è minore o uguale a b Linea 6 - b è maggiore o uguale a a
La tabella seguente elenca gli operatori logici comuni del linguaggio Lua, con A impostato su true e B su false:
操作符 | 描述 | Esempio |
---|---|---|
and | Operatore logico e. Se A è false, restituisce A, altrimenti restituisce B. | (A and B) è false. |
or | Operatore logico o. Se A è true, restituisce A, altrimenti restituisce B. | (A or B) è true. |
not | Operatore logico non. Contrario al risultato logico, se la condizione è true, il non logico è false. | not(A and B) è true. |
Possiamo comprendere meglio l'applicazione degli operatori logici attraverso l'esempio seguente:
a = true b = true if ( a and b ) then print("a and b - 条件为 true") end if (a o b) then print("a o b - condizione true") end print("---------分割线---------") -- 修改 a 和 b 的值 a = false b = true if ( a and b ) then print("a and b - 条件为 true") else print("a and b - 条件为 false") end if ( not( a and b) ) then print("not( a and b) - 条件为 true") else print("not( a and b) - 条件为 false") end
Il risultato dell'esecuzione del programma sopra è:
a and b - 条件为 true a or b - 条件为 true ---------分割线--------- a and b - 条件为 false not( a and b) - 条件为 true
下表列出了 Lua 语言中的连接运算符与计算表或字符串长度的运算符:
操作符 | 描述 | Esempio |
---|---|---|
.. | 连接两个字符串 | a..b ,其中 a 为 "Hello " , b 为 "World", 输出结果为 "Hello World"。 |
# | 一元运算符,返回字符串或表的长度。 | #"Hello" 返回 5 |
我们可以通过以下示例来更加透彻地理解连接运算符与计算表或字符串长度的运算符的应用:
a = "Hello " b = "World" print("连接字符串 a 和 b ", a..b) print("b 字符串长度 ",#b) print("字符串 Test 长度 ",#"Test") print("基础教程网网址长度 ",#"it.oldtoolbag.com")
Il risultato dell'esecuzione del programma sopra è:
连接字符串 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)
Possiamo comprendere meglio la priorità degli operatori del linguaggio Lua attraverso l'esempio seguente:
a = 20 b = 10 c = 15 d = 5 e = (a + b) * c / d; -- ( 30 * 15 ) / 5 print("(a + b) * c / d il valore dell'operazione è: ", e) e = ((a + b) * c) / d; -- (30 * 15) / 5 print("((a + b) * c) / d il valore dell'operazione è: ", e) e = (a + b) * (c / d); -- (30) * (15/5) print("(a + b) * (c / d) il valore dell'operazione è: ", e) e = a + (b * c) / d; -- 20 + (150/5) print("a + (b * c) / d il valore dell'operazione è: ", e)
Il risultato dell'esecuzione del programma sopra è:
(a + b) * c / d il valore dell'operazione è: : 90.0 ((a + b) * c) / d il valore dell'operazione è: : 90.0 (a + b) * (c / d) il valore dell'operazione è: : 90.0 a + (b * c) / d il valore dell'operazione è: : 50.0