位置:首页 > > Lua运算符

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  从左到右