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 ++でこれと同等または類似したものはありますか?
私はこれがあなたが望むものだと思います:
foo = a ? b : (c ? d : e );
三項演算子があります。優先順位がおかしいので、常に括弧で囲むことをお勧めします。
bool foo = ( a ? b : ( c ? d : e ) )
これは、、、およびが同じタイプに縮小できる場合b
にのみ機能することに注意してください。が、であり、がである場合、結果は常ににキャストされます。d
e
a
double
d
float
e
int
double
三項演算子を使用できます?:
foo = a ? b : c ? d : e;
あまり。これがLuaで機能する主な理由は、動的型付けが原因です。C++では、実際に機能させることはできません。最も近いのは三項演算子ですが、srsの制限があります。
CまたはC++でforandthenを使用&&
し、forまたはelseを使用します||
条件式?:
に三項を使用する