4

Lua 中是否有缩短的“if / then”语法(我专门使用 Corona SDK),就像在其他一些语言中一样......特别是沿着:

 res = (a == b) ? "It worked" : "It did NOT work"
4

3 回答 3

9

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

一个经常使用和强烈推荐的解决方案是以一种非常接近三元运算符的方式组合and 和二元运算符:or

x = a and b or c

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

x = a and b or c and d or e

警告:如果bd曾经是nil或,此技术可能会失败false

于 2012-05-02T04:56:12.310 回答
8

常见的习惯用法是使用和/或构造,因为布尔表达式在 Lua 中是短路的。

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

虽然我个人更喜欢 if/then/else 几乎在所有情况下。

于 2012-05-02T05:48:57.957 回答
-2

lua没有捷径,只有这个

 a=a or "hi"

就像:

 if not(a) then  a="hi" end
于 2012-07-29T09:12:50.727 回答