沿着这条线,是否存在类似于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/