【问题标题】:Why use & over &&?为什么要使用 & 而不是 &&?
【发布时间】:2020-12-15 05:19:23
【问题描述】:

我知道 &| 做了什么 - 它评估双方(或所有条件,如果超过 2 个) - 但我不能说我已经使用这两个运算符很长时间了,我总是使用&&||

例如如果我们知道a 的长度为空,(a != null) & (a.length == 1) 会抛出,显然(a != null) && (a.length == 1) 会在a 为空时返回false,而无需检查a 的长度是否为1. 我也知道使用&&|| 会带来轻微的性能优势,如果您有很多条件来检查在条件 2/100 下返回真/假比在条件 2 下评估所有 100 个真/假要快。

什么情况下需要单个 &| 操作数?

【问题讨论】:

标签: comparison-operators operands


【解决方案1】:

&&|| 是两个谓词之间的逻辑 AND 或 OR。这就是为什么它可以像逻辑 AND 或 OR 一样更有效,我们可以做 Short-circuit evaluation

另一方面,&| 应用 按位 AND 或 OR。这不使用短路评估。它的使用通常与检查谓词无关,更多地与基于位的操作有关,例如bit-masking

【讨论】:

    猜你喜欢
    • 2013-01-04
    • 2013-12-07
    • 2015-05-03
    • 2011-10-09
    • 2013-09-13
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多