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) 為真。
> 檢查左運算元的值是否大於右運算元的值,如果大於則條件為真。 (A > B) 為假。
< 檢查左運算元的值是否小於右運算元的值,如果小於則條件為真。 (A < B) 為真。
>= 檢查左運算元的值是否大於或等於右運算元的值,如果大於或等於則條件為真。 (A >= B) 為假。
<= 檢查左運算元的值是否小於或等於右運算元的值,如果小於或等於則條件為真。 (A <= B) 為真。

邏輯運算子

下表顯示了 Lua 語言支援的所有邏輯運算子。假設變數A為真,變數B為假,則:

顯示示例

運算子 描述 示例
and 稱為邏輯 AND 運算子。如果兩個運算元都不為零,則條件為真。 (A and B) 為假。
or 稱為邏輯 OR 運算子。如果兩個運算元中的任何一個都不為零,則條件為真。 (A or B) 為真。
not 稱為邏輯 NOT 運算子。用於反轉其運算元的邏輯狀態。如果條件為真,則邏輯 NOT 運算子將使其為假。 !(A and B) 為真。

雜項運算子

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 左到右
廣告
© . All rights reserved.