運(yùn)算符是一個(gè)符號(hào)可以告訴解釋,以執(zhí)行特定的數(shù)學(xué)或邏輯操作。 Lua中語言有豐富的內(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中語言支持的算術(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 |
| / | 通過分子除以反分子 | B / A = 2 |
| % | 模運(yùn)算和整數(shù)除法后的余數(shù) | B % A = 0 |
| ^ | 指數(shù)運(yùn)算符需要的指數(shù) | A^2 = 100 |
| - | 一元運(yùn)算 - 運(yùn)算符作為取反 | -A = -10 |
下表列出了所有Lua語言支持的關(guān)系運(yùn)算符。假設(shè)變量A持有10和變量B持有20則:
| 操作符 | 描述 | 示例 |
|---|---|---|
| == | 檢查,如果兩個(gè)操作數(shù)的值等于或否,如果是,則條件變?yōu)檎妗?/td> | (A == B) 不為真. |
| ~= | 檢查,如果兩個(gè)操作數(shù)的值相等或沒有,如果值不相等,則條件變?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ù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. |
通過Lua語言支持其他運(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í)來確定條件的表達(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 | 從左到右 |