Lua運算子


運算子是告訴直譯器執行特定數學或邏輯操作的符號。 Lua語言內建運算子豐富,並提供以下型別的運算子 -

  • 算術運算子
  • 關係運算子
  • 邏輯運算子
  • 其它運算子

本教學將逐一解釋算術,關係,邏輯和其他雜項運算子。

1. 算術運算子

下表顯示了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

算術運算子範例程式碼

2. 關係運算子

下表顯示了Lua語言支援的所有關係運算子。 假設變數A=10,變數B=20,然後 -

運算子 描述 範例
== 檢查兩個運算元的值是否相等,如果相等,則條件變為真。 (A == B)結果為false
~= 檢查兩個運算元的值是否相等,如果值不相等則條件變為true (A ~= B)結果為true
> 檢查左運算元的值是否大於右運算元的值,如果是,則條件變為true (A > B)結果為false
< 檢查左運算元的值是否小於右運算元的值,如果是,則條件變為true (A < B)結果為true
>= 檢查左運算元的值是否大於或等於右運算元的值,如果是,則條件變為true (A >= B)結果為false
<= 檢查左運算元的值是否小於或等於右運算元的值,如果是,則條件變為true (A <= B)結果為true

關係運算子範例程式碼

3. 邏輯運算子

下表顯示了Lua語言支援的所有邏輯運算子。 假設變數A=true,變數B=false,則 -

運算子 描述 範例
and 邏輯與運算子。如果兩個運算元都不為零,則條件成立。 (A and B) 結果為false
or 邏輯或運算子。 如果兩個運算元中的任何一個不為零,則條件變為真。 (A or B) 結果為true
not 邏輯非運算子。用於反轉其運算元的邏輯狀態。 如果條件為真,則邏輯非運算子將為false !(A and B)結果為true

邏輯運算子範例

4. 雜項運算子

Lua語言支援的其他運算子包括連線和長度。

編號 描述 範例
... 連線兩個字串 如果aHellobWorlda..b將返回Hello World
# 返回字串或表長度的一元運算子。 #"Hello" 將返回 5

雜項運算子範例

5. Lua運算子優先順序

運算子優先順序確定表示式中的術語分組。 這會影響表示式的計算方式。 某些運算子的優先順序高於其他運算子; 例如,乘法運算子的優先順序高於加法運算子 -

例如,x = 7 + 3 * 2; 這裡x賦值為13,而不是20,因為運算子 * 的優先順序高於+,所以它首先乘以3 * 2然後再加上7

此處,具有最高優先順序的運算子顯示在錶的頂部,具有最低優先順序的運算子顯示在底部。 在表示式中,將首先評估更高優先順序的運算子。

類別 操作符 關聯性
一元 not # - 右到左
連線 .. 右到左
乘法 * / % 左到右
加法 + - 左到右
關係 < > <= >= == ~= 左到右
相等 == ~= 左到右
邏輯與 and 左到右
邏輯或 or 左到右

運算子優先順序範例