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 

從左到右