相当于C ++中的Lua“和/或”?

时间:2012-05-26 09:51:39

标签: c++ lua

在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 ++中有没有与此相同或类似的内容?

5 个答案:

答案 0 :(得分:6)

我想这就是你想要的:

foo = a ? b : (c ? d : e );

答案 1 :(得分:5)

ternary operator。它具有有趣的优先级,所以总是将它括起来是很好的做法。

bool foo = ( a ? b : ( c ? d : e ) )

请注意,这只适用于bde可以缩减为相同类型的情况。如果adoubledfloateint,则您的结果将始终投放到double 1}}。

答案 2 :(得分:2)

您可以使用三元运算符?:

foo = a ? b : c ? d : e;

答案 3 :(得分:1)

不是真的。这在Lua中工作的主要原因是因为C ++中的动态类型,你永远无法真正使它工作。最接近的是三元运算符,但它有srs限制。

答案 4 :(得分:-3)

C C ++ 中使用&&获取,然后并使用||获取或其他

将三元?:用于条件表达式