私は最近、コードベースで次のことを見ました:
bool bRes = (a < b) ? a=b, true : false;
の場合a < b
、 thena=b
が実行され、bRes
真になります。ここで何が起こっているのですか?条件演算子のドキュメントでは、式の連鎖については何も言及されていません。
編集:明確にするために、条件演算子の部分を取得します。これa=b, true
は、私を混乱させた単一の式です。
私は最近、コードベースで次のことを見ました:
bool bRes = (a < b) ? a=b, true : false;
の場合a < b
、 thena=b
が実行され、bRes
真になります。ここで何が起こっているのですか?条件演算子のドキュメントでは、式の連鎖については何も言及されていません。
編集:明確にするために、条件演算子の部分を取得します。これa=b, true
は、私を混乱させた単一の式です。
うわー。これはコンマ演算子の使用法です。 a=b, true
あなたが言ったことを正確に行います。各式を実行し、最後の式の値になります。
That is a correct code, but written in a strange style. The language allows to use the comma operator this way.
The equivalent is
bool bRes;
if (a < b)
{
a = b;
bRes = true;
}
else
bRes = false;