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) 为真。
> 检查左操作数的值是否大于右操作数的值,如果大于则条件为真。 (A > B) 为假。
< 检查左操作数的值是否小于右操作数的值,如果小于则条件为真。 (A < B) 为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果大于或等于则条件为真。 (A >= B) 为假。
<= 检查左操作数的值是否小于或等于右操作数的值,如果小于或等于则条件为真。 (A <= B) 为真。

逻辑运算符

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

显示示例

运算符 描述 示例
and 称为逻辑 AND 运算符。如果两个操作数都不为零,则条件为真。 (A and B) 为假。
or 称为逻辑 OR 运算符。如果两个操作数中的任何一个都不为零,则条件为真。 (A or B) 为真。
not 称为逻辑 NOT 运算符。用于反转其操作数的逻辑状态。如果条件为真,则逻辑 NOT 运算符将使其为假。 !(A and B) 为真。

杂项运算符

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 左到右
广告
© . All rights reserved.