直截了当:与短路和变体相比,何时使用单一&或单一更好?|&&||我似乎找不到一个更好地评估布尔表达式的两侧的示例。
1 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
&&正如您所暗示的那样,您意识到短路运算符and||和非短路运算符&and之间的区别|。但这种差异何时会变得显着?当第二个表达式有副作用或者是影响性能的长时间运行的操作时。副作用的最简单示例是碰巧返回 a 的方法调用boolean,例如:
if (firstOperation() & secondOperation()) //...
当您需要确保副作用发生时,请不要短路。但是我在实践中并不经常看到它,因为首先调用具有副作用的方法,然后评估条件会更清楚,例如:
boolean first = firstOperation();
boolean second = secondOperation();
if (first && second) //...
通常你会看到短路操作符,如果不需要的话,它会避免计算第二个操作数。当第二个条件没有副作用时,这会派上用场,如果第二个条件涉及大量开销成本,它就会变得很重要。
添加回答
举报
0/150
提交
取消