位置:首頁 > 腳本語言 > Lua教學 > Lua運算符

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  從左到右