Lua 运算符优先级



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

例如,x = 7 + 3 * 2; 此处 x 的值为 13,而不是 20,因为 * 运算符的优先级高于 +,所以它先计算 3*2,然后再加上 7。

这里,优先级最高的运算符出现在表的上方,优先级最低的出现在下方。在表达式中,优先级高的运算符将首先被求值。

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

示例

在这个例子中,我们创建了三个变量 a、b 和 c,并编写了一个算术语句来检查运算符优先级。

a = 20
b = 10
c = 15

-- a + b * c == a + 150 == 20 + 150 = 170 
result = a + b * c  
print("a + b * c", result)

输出

构建并执行上述程序后,将产生以下结果:

a + b * c	170

示例

在这个例子中,我们创建了三个变量 a、b 和 c,并编写了一个逻辑语句来检查运算符优先级。

a = 20
b = 10
c = 15

-- a > b and a > c == true and true == true 
result = a > b and a > c  
print("a > b and a > c ", result)

输出

构建并执行上述程序后,将产生以下结果:

a + b * c	170

示例

在这个例子中,我们创建了三个变量 a、b 和 c,并在逻辑与语句之前编写了一个一元语句来检查运算符优先级。

a = false
b = true

-- not a == true
-- not a and b == true and true == true
result = not a and b
print("not a and b ", result)

输出

构建并执行上述程序后,将产生以下结果:

not a and b    true
lua_operators.htm
广告