Lua 基础教程(六)运算符

73 阅读3分钟

Lua 基础教程(六)运算符

hudson 译 原文

运算符是一种告诉解释器执行特定数学或逻辑操作的符号。Lua语言中内置的运算符丰富多样,包括以下类型的运算符 :

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 其它运算符

下面逐一介绍算术、关系、逻辑和其他运算符。

算术运算符

以下表格显示了Lua语言支持的所有算术运算符。假设变量A的值为10,变量B的值为20,则 :

运算符描述示例
+加法A + B = 30
-减法A - B = -10
*乘法A * B = 200
/除法B / A = 2
%取模B % A = 0
幂运算A^2 = 100

以上是算术运算符的示例。

关系运算符

以下表格显示了Lua语言支持的所有关系运算符。假设变量A的值为10,变量B的值为20,则 :

运算符描述示例
==检查两个操作数的值是否相等,如果是,则条件为真。(A == B) 不为真。
~=检查两个操作数的值是否不相等,如果值不相等,则条件为真。(A ~= B) 为真。
检查左操作数的值是否大于右操作数的值,如果是,则条件为真。(A > B) 不为真。
<检查左操作数的值是否小于右操作数的值,如果是,则条件为真。(A < B) 为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真。(A >= B) 不为真。
<=检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为真。(A <= B) 为真。

以上是关系运算符的示例。

逻辑运算符

以下表格显示了Lua语言支持的所有逻辑运算符。假设变量A的值为true,变量B的值为false,则 -

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

其它运算符

Lua语言支持的其他杂项运算符包括连接和长度。

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

运算符优先级

运算符优先级确定表达式中项的分组方式。这会影响表达式的求值方式。某些运算符的优先级高于其他运算符;例如,乘法运算符的优先级高于加法运算符 。

举例来说,x = 7 + 3 * 2;这里x被赋值为13,而不是20,因为乘法运算符 * 的优先级高于加法运算符 +,所以它首先计算3*2,然后再加上7

下表中,优先级最高的运算符出现在表的顶部,优先级最低的出现在底部。在表达式中,优先级较高的运算符将首先进行求值。

类别运算符结合性
一元not # -从右到左
连接..从右到左
乘法* / %从左到右
加法+ -从左到右
关系< > <= >= == ~=从左到右
相等== ~=从左到右
逻辑ANDand从左到右
逻辑ORor从左到右