在Lua中,您可以这样做:
在C++中有类似或等效的东西吗?
foo = a and b or c and d or e
这相当于(我至少相信它是相等的):
local foo = nil
if a then
foo = b
elseif c then
foo = d
else
foo = e
end
在C++中有类似或等效的东西吗?
?:
运算符的优先级有什么好笑的?它比任何非赋值运算符的优先级都低,比所有赋值运算符的优先级都高,就是这样。因此,您可以轻松省略外部括号。更有趣的是它的结合性,这就是为什么您需要在嵌套的?:
之间使用括号的原因。 - leftaroundaboutfoo=c=='x'?x:y
或foo=a||b?x:y
这样的内容是有意义的,因此它必须比逻辑和比较运算符具有更低的优先级。此外,我需要收回我关于结合性的说法:它只是右结合的,所以你也可以省略内部括号。虽然你应该将表达式分成三行,并适当缩进,否则它会变得难以阅读。 - leftaroundabout