在Lua中,你可以这样做:
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 ++中有没有与此相同或类似的内容?
答案 0 :(得分:6)
我想这就是你想要的:
foo = a ? b : (c ? d : e );
答案 1 :(得分:5)
有ternary operator。它具有有趣的优先级,所以总是将它括起来是很好的做法。
bool foo = ( a ? b : ( c ? d : e ) )
请注意,这只适用于b
,d
和e
可以缩减为相同类型的情况。如果a
是double
,d
是float
且e
是int
,则您的结果将始终投放到double
1}}。
答案 2 :(得分:2)
您可以使用三元运算符?:
foo = a ? b : c ? d : e;
答案 3 :(得分:1)
不是真的。这在Lua中工作的主要原因是因为C ++中的动态类型,你永远无法真正使它工作。最接近的是三元运算符,但它有srs限制。
答案 4 :(得分:-3)
在 C 或 C ++ 中使用&&
获取,然后并使用||
获取或其他
将三元?:
用于条件表达式