Lua中是否有缩写的“if then”语法可用?

Lua 中是否有更短的“if / then”语法可用(我特别使用 Corona SDK),类似于其他语言中的语法……特别是像这样的:

res =(a == b)?“它起作用了”:“它没有起作用”

原文链接 https://stackoverflow.com/questions/10407915

点赞
stackoverflow用户388787
stackoverflow用户388787

为了表示x = a ? b : clua-users wiki建议:

经常使用且强烈推荐的解决方案是将andor二元运算符结合起来,以接近三元运算符的方式:

x = a and b or c

为了表示x = a ? b : c ? d : e,该 wiki 进一步建议:

x = a and b or c and d or e

警告:如果bdnilfalse,此技术可能会失败。

2012-05-02 04:56:12
stackoverflow用户360811
stackoverflow用户360811

常用的习语是使用 and/or 构造,因为在 Lua 中布尔表达式是短路的。

res  = a == b and "It worked" or "It did NOT work"

尽管在我的个人看法中,几乎在所有情况下我都更喜欢使用 if/then/else

2012-05-02 05:48:57
stackoverflow用户1481503
stackoverflow用户1481503

Lua 中没有缩写形式,只有:

a = a or "hi"

和下面的代码是等价的:

if not(a) then
    a = "hi"
end
2012-07-29 09:12:50