何时应在 Java 中使用单个逻辑运算符



直截了当:什么时候使用单&或单|比它们的短路&&||变体更好?

我似乎找不到一个示例来更好地评估布尔表达式的两面。

正如你所暗示的,你意识到短路算子&&||与非短路算子&|之间的区别。 但是,这种差异何时会变得显著? 当第二个表达式具有副作用或影响性能的长时间运行的操作时。 副作用最简单的例子是碰巧返回boolean的方法调用,例如:

if (firstOperation() & secondOperation()) //...

当您需要确保副作用发生时,请不要短路。 但我在实践中并不经常看到它,因为首先调用有副作用的方法,然后评估条件会更清楚,例如:

boolean first = firstOperation();
boolean second = secondOperation();
if (first && second) //...

通常,您会看到短路运算符,如果不需要,它们会避免计算第二个操作数。 当第二个条件没有副作用时,这会派上用场,如果第二个条件涉及大量的间接成本,这可能会变得很重要。

相关内容

  • 没有找到相关文章

最新更新