Lua運算符
運算符是一個符號可以告訴解釋,以執行特定的數學或邏輯操作。 Lua中語言有豐富的內置運算符以及運算符提供了以下類型:
算術運算符
關係運算符
邏輯運算符
其它運算符
本教程將一個接一個講解算術,關係,邏輯和其他各種運算符。
算術運算符
下表列出了所有Lua中語言支持的算術運算符。假設變量A持有10和變量B持有20則:
顯示示例
運算符
描述
示例
+
相加兩個操作數
A + B = 30
-
從所述的第一個減去第二操作數
A - B = -10
*
兩個操作數相乘
A * B = 200
/
通過分子除以反分子
B / A = 2
%
模運算和整數除法後的餘數
B % A = 0
^
指數運算符需要的指數
A^2 = 100
-
一元運算 - 運算符作爲取反
-A = -10
關係運算符
下表列出了所有Lua語言支持的關係運算符。假設變量A持有10和變量B持有20則:
顯示示例
操作符
描述
示例
==
檢查,如果兩個操作數的值等於或否,如果是,則條件變爲真。
(A == B) 不爲真.
~=
檢查,如果兩個操作數的值相等或沒有,如果值不相等,則條件變爲真。
(A ~= B) 爲 true.
>
檢查,如果左操作數的值大於右操作數的值,如果是,則條件成立。
(A > B) 不爲 true.
<
檢查,如果左操作數的值小於右操作數的值,如果是,則條件成立。
(A < B) 爲 true.
>=
檢查,如果左操作數的值大於或等於右操作數的值,如果是,則條件成立。
(A >= B) 不爲true.
<=
檢查,如果左操作數的值小於或等於右操作數的值,如果是,則條件成立。
(A <= B) 爲 true.
邏輯運算符
下表列出了所有的Lua語言支持的邏輯運算符。假設變量A持有true,變量B持有false:
顯示實例
運算符
描述
示例
and
所謂邏輯與運算符。如果兩個操作數都是不爲零,則條件成立。
(A and B) 爲 false.
or
所謂邏輯OR運算符。如果有兩個操作數是不爲零,則條件變爲真。
(A or B) 爲 true.
not
所謂邏輯非運算符。用於反轉操作數的邏輯狀態。如果一個條件爲真,則邏輯非運算符將返回false。
!(A and B) 爲 true.
其它運算符
通過Lua語言支持其他運算符包括串聯和長度。
顯示示例
運算符
描述
示例
..
連接兩個字符串。
a..b 當a的值爲 "Hello " 以及b的值爲 "World", 會返回 "Hello World".
#
一個一元運算符返回一個字符串或一個表的長度。
#"Hello" 會返回 5
Lua運算符優先級
運算符優先級來確定條件的表達式中的分組。這會影響一個表達式如何計算。某些運算符的優先級高於其他;例如,乘法運算符的優先級比加法運算更高:
例如 x = 7 + 3 * 2;這裏x被分配13,不是20,因爲運算符*的優先級比+高,所以先得到乘以3*2,然後添加7。
這裏具有最高優先級運算符出現在表的頂部,那些具有最低出現在底部。在一個表達式,更高的優先級運算符將首先計算賦值。
顯示示例
分類
操作符
關聯
一元運算
not # -
從右到左
串聯
..
從右到左
乘法
* / %
從左到右
相加
+ -
從左到右
關係
< > <= >= == ~=
從左到右
等式
== ~=
從左到右
邏輯AND
and
從左到右
邏輯OR
or
從左到右