这个奇怪的条件运算符语法是什么

What is this strange conditional operator syntax?

本文关键字:条件运算符 语法 是什么      更新时间:2023-10-16

我最近在代码库中看到了以下内容:

bool bRes = (a < b) ? a=b, true : false;

如果a < b,则执行a=b,并且bRes为真。这里到底发生了什么?条件运算符的文档没有提到任何关于链接表达式的内容。

edit:要明确的是,我得到了条件运算符部分,a=b, true作为一个单独的表达式让我感到困惑。

Ew。这是逗号运算符的用法。a=b, true完全按照你说的去做。它执行每个表达式并产生最后一个表达式的值。

这是一个正确的代码,但写的风格很奇怪。该语言允许以这种方式使用逗号运算符。

相当于

bool bRes;
if (a < b)
{
 a = b;
 bRes = true;
}
else
 bRes = false;