運(yùn)算符是一個(gè)符號(hào)可以告訴解釋,以執(zhí)行特定的數(shù)學(xué)或邏輯操作。 Lua中語(yǔ)言有豐富的內(nèi)置運(yùn)算符以及運(yùn)算符提供了以下類型:
算術(shù)運(yùn)算符
關(guān)系運(yùn)算符
邏輯運(yùn)算符
其它運(yùn)算符
本教程將一個(gè)接一個(gè)講解算術(shù),關(guān)系,邏輯和其他各種運(yùn)算符。
下表列出了所有Lua中語(yǔ)言支持的算術(shù)運(yùn)算符。假設(shè)變量A持有10和變量B持有20則:
運(yùn)算符 | 描述 | 示例 |
---|---|---|
+ | 相加兩個(gè)操作數(shù) | A + B = 30 |
- | 從所述的第一個(gè)減去第二操作數(shù) | A - B = -10 |
* | 兩個(gè)操作數(shù)相乘 | A * B = 200 |
/ | 通過(guò)分子除以反分子 | B / A = 2 |
% | 模運(yùn)算和整數(shù)除法后的余數(shù) | B % A = 0 |
^ | 指數(shù)運(yùn)算符需要的指數(shù) | A^2 = 100 |
- | 一元運(yùn)算 - 運(yùn)算符作為取反 | -A = -10 |
下表列出了所有Lua語(yǔ)言支持的關(guān)系運(yùn)算符。假設(shè)變量A持有10和變量B持有20則:
操作符 | 描述 | 示例 |
---|---|---|
== | 檢查,如果兩個(gè)操作數(shù)的值等于或否,如果是,則條件變?yōu)檎妗?/td> | (A == B) 不為真. |
~= | 檢查,如果兩個(gè)操作數(shù)的值相等或沒(méi)有,如果值不相等,則條件變?yōu)檎妗?/td> | (A ~= B) 為 true. |
> | 檢查,如果左操作數(shù)的值大于右操作數(shù)的值,如果是,則條件成立。 | (A > B) 不為 true. |
< | 檢查,如果左操作數(shù)的值小于右操作數(shù)的值,如果是,則條件成立。 | (A < B) 為 true. |
>= | 檢查,如果左操作數(shù)的值大于或等于右操作數(shù)的值,如果是,則條件成立。 | (A >= B) 不為true. |
<= | 檢查,如果左操作數(shù)的值小于或等于右操作數(shù)的值,如果是,則條件成立。 | (A <= B) 為 true. |
下表列出了所有的Lua語(yǔ)言支持的邏輯運(yùn)算符。假設(shè)變量A持有true,變量B持有false:
運(yùn)算符 | 描述 | 示例 |
---|---|---|
and | 所謂邏輯與運(yùn)算符。如果兩個(gè)操作數(shù)都是不為零,則條件成立。 | (A and B) 為 false. |
or | 所謂邏輯OR運(yùn)算符。如果有兩個(gè)操作數(shù)是不為零,則條件變?yōu)檎妗?/td> | (A or B) 為 true. |
not | 所謂邏輯非運(yùn)算符。用于反轉(zhuǎn)操作數(shù)的邏輯狀態(tài)。如果一個(gè)條件為真,則邏輯非運(yùn)算符將返回false。 | !(A and B) 為 true. |
通過(guò)Lua語(yǔ)言支持其他運(yùn)算符包括串聯(lián)和長(zhǎng)度。
運(yùn)算符 | 描述 | 示例 |
---|---|---|
.. | 連接兩個(gè)字符串。 | a..b 當(dāng)a的值為 "Hello " 以及b的值為 "World", 會(huì)返回 "Hello World". |
# | 一個(gè)一元運(yùn)算符返回一個(gè)字符串或一個(gè)表的長(zhǎng)度。 | #"Hello" 會(huì)返回 5 |
運(yùn)算符優(yōu)先級(jí)來(lái)確定條件的表達(dá)式中的分組。這會(huì)影響一個(gè)表達(dá)式如何計(jì)算。某些運(yùn)算符的優(yōu)先級(jí)高于其他;例如,乘法運(yùn)算符的優(yōu)先級(jí)比加法運(yùn)算更高:
例如 x = 7 + 3 * 2;這里x被分配13,不是20,因?yàn)檫\(yùn)算符*的優(yōu)先級(jí)比+高,所以先得到乘以3*2,然后添加7。
這里具有最高優(yōu)先級(jí)運(yùn)算符出現(xiàn)在表的頂部,那些具有最低出現(xiàn)在底部。在一個(gè)表達(dá)式,更高的優(yōu)先級(jí)運(yùn)算符將首先計(jì)算賦值。
分類 | 操作符 | 關(guān)聯(lián) |
---|---|---|
一元運(yùn)算 | not # - | 從右到左 |
串聯(lián) | .. | 從右到左 |
乘法 | * / % | 從左到右 |
相加 | + - | 從左到右 |
關(guān)系 | < > <= >= == ~= | 從左到右 |
等式 | == ~= | 從左到右 |
邏輯AND | and | 從左到右 |
邏輯OR | or | 從左到右 |