【问题标题】:when and why use or equalto (|=) shorthand operator何时以及为何使用或等于 (|=) 速记运算符
【发布时间】:2015-03-17 07:41:10
【问题描述】:

我正在寻找一个 java 项目的源代码,在这里我找到了一个运算符 |= 用于布尔变量。
谁能告诉我这到底是什么?以及使用它的最佳方式。

感谢您的回复,现在改进我的问题:|= 速记运算符实际上做了什么。根据我的测试显示:

false | true = true
false | false = false
true | false = true
true | true = true

但我仍然不清楚,它是如何确定结果的。以及我可以使用它的任何用例。
谢谢

【问题讨论】:

  • 它被称为shorthand operator
  • @Shams 这是一个逻辑或,请参阅我的更新。
  • 请考虑将其中一个答案标记为已接受。

标签: java operators


【解决方案1】:

a |= b; 与a = a | b; 相同,a += b; 与a = a + b; 相同。

只要你有a = a | b; 形式的东西(这种情况很少见)并想要缩短它,你就会使用它。

【讨论】:

    【解决方案2】:

    正如您得到的答案,它是一个简短的复合赋值运算符。所以如果你写

    a1 |= a2;
    

    或

    a1 = a1 | a2; 
    

    两者的意思相同。它只是编写代码的方式。

    关于您问过的两个 W,即 何时使用以及为什么使用? 完全取决于程序员,因为一些程序员认为第一个更易读,而另一些则认为后者。

    这是other such operators的列表。


    Operator   Description                                   Example
    ----------------------------------------------------------------------------------------
    |=        bitwise inclusive OR and assignment operator   C |= 2 is same as C = C | 2
    ^=        bitwise exclusive OR and assignment operator   C ^= 2 is same as C = C ^ 2
    &=        Bitwise AND assignment operator                C &= 2 is same as C = C & 2
    <<=       Left shift AND assignment operator             C <<= 2 is same as C = C << 2
    >>=       Right shift AND assignment operator            C >>= 2 is same as C = C >> 2  
    ----------------------------------------------------------------------------------------
    

    【讨论】:

      【解决方案3】:

      这是对左侧操作数进行逻辑或的赋值的缩写形式。

      a|=b ---> a=a|b
      

      您可以对其他运算符执行相同的操作:+、-、*、&amp;、^ 等。

      更新:

      添加一些东西,因为您似乎需要对逻辑或的简短解释:此运算符仅在其至少一个布尔操作数为真时才返回真。在wiki 上查看此页面。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-07
        • 2011-05-30
        • 1970-01-01
        • 2017-02-09
        • 1970-01-01
        • 2016-10-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多