Lua - Operators

运算符是告诉解释器执行特定数学或逻辑操作的符号. Lua语言有丰富的内置运算符,并提供以下类型的运算符 :

  • 算术运算符

  • 关系运算符

  • 逻辑运算符

  • 其他运算符

本教程将逐一解释算术,关系,逻辑和其他各种运算符.

算术运算符

下表显示了所有算术运算Lua语言支持的运算符.假设变量 A 持有10而变量 B 持有20然后:

运算符描述示例
+添加两个操作数A + B将给出30
-从第一个减去第二个操作数A  -  B将给-10
*将两个操作数相乘A * B将给出200
/用除分子除以分子B/A将给出2
Modulus Operat或整数除法后的余数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和B)为假.
or被称为逻辑OR运算符.如果两个操作数中的任何一个不为零,则条件变为真.(A或B)为真.
not被称为逻辑非运算符.用于反转其操作数的逻辑状态.如果条件为真,那么Logical NOT运算符将为false.!(A和B)为真.

其他运算符

Lua语言支持的其他运算符包括连接长度.

Operator描述示例
..连接两个字符串.a..b其中a为"Hello",b为"World",将返回"Hello World".
返回字符串或表长度的一元运算符.#"Hello"将返回5

运算符在Lua中的优先级

运算符优先级决定表达式中的术语分组.这会影响表达式的计算方式.某些运营商的优先级高于其他运营商;例如,乘法运算符的优先级高于加法运算符 :

例如,x = 7 + 3 * 2;这里x被赋值为13而不是20,因为operator *的优先级高于&plus;因此它首先乘以3 * 2然后加到7中.

这里,优先级最高的运算符出现在表的顶部,最低的运算符出现在底部.在表达式中,将首先评估更高优先级的运算符.

类别运算符相关性
Unary不# -从右到左
Concatenation..从右到左
Multiplicative*/%从左到右
Additive+  -从左到右
Relational< &GT; < => = ==〜= 从左到右
Equality==〜=从左到右
逻辑ANDand从左到右
逻辑ORor从左到右