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) is not true.
~= 检查两个操作数的值是否相等,如果值不相等则条件为真。 (A ~= B) is true.
> 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (A > B) is not true.
< 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (A < B) is true.
>= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (A >= B) is not true.
<= 检查左操作数的值是否小于或等于右操作数的值,如果是的,则条件将变为true。 (A <= B) is true.

逻辑运算符

下表显示了 Lua 语言支持的所有逻辑运算符。 假设变量 A 为真,变量 B 为假,则 −

显示示例

运算符 描述 示例
and 称为逻辑与运算符。 如果两个操作数都不为零,则条件为真。 (A and B) is false.
or 称为逻辑或运算符。 如果两个操作数中的任何一个非零,则条件变为真。 (A or B) is true.
not 称为逻辑非运算符。用于逆转其操作数的逻辑状态。 如果条件是 true,则逻辑非运算符结果会是 false。 !(A and B) is true.

杂项运算符

Lua 语言支持的其他运算符包括 concatenationlength

显示示例

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

Lua 中的运算符优先级

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

例如,x = 7 + 3 * 2; 这里 x 赋值为 13,而不是 20,因为运算符 * 的优先级高于 + 所以它首先乘以 3*2,然后加到 7。

在这里,具有最高优先级的运算符出现在表格的顶部,那些具有最低优先级的出现在底部。 在表达式中,优先级较高的运算符将首先被计算。

显示示例

类别 运算符 关联性
Unary not # - Right to left
Concatenation .. Right to left
Multiplicative * / % Left to right
Additive + - Left to right
Relational < > <= >= == ~=  Left to right
Equality == ~= Left to right
Logical AND and Left to right
Logical OR or Left to right