and和or的运算结果不是true和false,而是和它的两个操作数相关。
a and b -- 如果a为false,则返回a,否则返回b
a or b -- 如果a为true,则返回a,否则返回b
C语言中的三元运算符
a ? b : c
在Lua中可以这样实现:
(a and b) or c
x = x or v,它相当于:
if not x then x = v end
x = x or v
,它相当于:
if not x then x = v end