Lua中有一个缩短的“if then”语法吗?

时间:2012-05-02 04:52:40

标签: lua corona

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

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

3 个答案:

答案 0 :(得分:8)

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

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

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

答案 1 :(得分:7)

是的,有一些用例。见http://lua-users.org/wiki/TernaryOperator

  

经常使用且强烈推荐的解决方案是结合使用和   和二元运算符的方式非常接近三元数   操作者:

x = a and b or c
x = a and b or c and d or e

但是,这只有在if语句的主体是表达式时才有效。例如,以下内容无效:

x == 3 and break else continue

答案 2 :(得分:-1)

lua没有短路,只有这个

a = a或“hi”  就像:  如果不是(a)那么a =“hi”结束