沿着这条线,是否存在类似于c++中 bool(boolean) 的就地AND和OR运算符?

bool someOk=false;
for(int i=0; i<10; i++){
  someOk||=funcReturningBoolOnSuccess(i);
}

(我知道我可以写someOk=someOk||funcReturningBoolOnSuccess(i),但它不那么漂亮)。

最佳答案

答案很简短:不,C++语法不允许这种结构。

您必须使用:

something = something || something_else;

但是....如果函数在成功时返回 bool(boolean) 值(例如,成功则为true)...为什么不只使用以下内容?
someOk = funcReturningBoolOnSuccess(i);

无论如何,它不会在失败时返回false吗?似乎不合逻辑。

你为什么不这样做:
bool someOk=false;
for(int i=0; i<10; i++){
  if (funcReturningBoolOnSuccess(i)) {
      someOk = true;
      break;
  }
}

效率高得多:)

关于c++ - 在C++中就地 boolean AND和OR?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17589797/

10-13 08:48