我有几个独立的函数,根据其他条件返回true或false。当他们都返回true时,我想要发生一个动作,但是我希望所有的函数都能够运行,而不管有多少个返回false。如果我只是想检查所有的功能都返回true,我会用:如果声明使用按位运算符来强制评估
if (func1() && func2() && func3()){
//Some code
}
这样做的问题是,如果功能之一返回false所有功能的权利将不会执行。一种方法我还没有尝试过在if表达式使用按位与运算符(&),它看起来像:
if (func1() & func2() & func3()){
//Some code
}
我略略的测试这种方法,它似乎然而,要产生预期的结果我找不到在别处使用的这种方法,我想知道是否有任何理由可能产生意想不到的结果?
也有一个很好的理由不比较使用这种方法的功能的结果?
我最好的猜测是,必须对函数“必须”进行评估,以便进行按位比较,否则当发现错误时会停止更有效的停止。只要您的退货类型在检查中,我并不认为它有问题。 – NickSuperb
就我个人而言,我认为这是一个值得怀疑的设计决定,要依靠这样的副作用。它使代码变得脆弱。 – Pointy