我最近在代码库中看到了以下内容:
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
完全按照你说的做。它执行每个表达式并产生最后一个表达式的值。
这是一个正确的代码,但写的风格很奇怪。该语言允许以这种方式使用逗号运算符。
等效的是
bool bRes;
if (a < b)
{
a = b;
bRes = true;
}
else
bRes = false;