Lua语法糖运算符的使用

运算符属于Lua的语法糖,本来不打算写,但是今天做项目的时候发现一些坑,记录一下

三元运算符

a < b and a or b

例子

-- 取最大值
local a = 0
local b = 1

print(a < b and b or a)

-- print >> 1

条件运算符

a or b

例子

-- 赋值为空的默认值
local a = nil
b = a or "我是默认值"
print(b)

-- print 我是默认值

可能引发的问题

这里需要注意,上述所有的运算符,都属于Lua的语法糖,都会出现一些问题:

  • 当 a = false 的情况,将自动赋值 运算符or 后面的值