首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >何时以及为什么使用或等于(|=)速记运算符

何时以及为什么使用或等于(|=)速记运算符
EN

Stack Overflow用户
提问于 2015-03-17 15:41:10
回答 3查看 85关注 0票数 3

我在寻找一个java项目的源代码,在这里我找到了一个布尔变量的运算符|=

有人能告诉我这到底是什么吗?这也是最好的用法。

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

代码语言:javascript
运行
复制
false | true = true
false | false = false
true | false = true
true | true = true

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

谢谢

EN

回答 3

Stack Overflow用户

发布于 2015-03-17 15:42:00

a |= b;的含义与a = a | b;相同,a += b;的含义与a = a + b;相同。

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

票数 7
EN

Stack Overflow用户

发布于 2015-03-17 15:50:43

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

代码语言:javascript
运行
复制
a1 |= a2;

代码语言:javascript
运行
复制
a1 = a1 | a2; 

这两者的含义是一样的。这只是编写代码的方式。

关于你问的两个W,也就是什么时候使用,为什么使用?完全依赖于程序员,因为一些程序员认为第一个更具可读性,而另一些则认为后者更具可读性。

以下是other such operators的列表。

代码语言:javascript
运行
复制
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  
----------------------------------------------------------------------------------------
票数 4
EN

Stack Overflow用户

发布于 2015-03-17 15:45:29

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

代码语言:javascript
运行
复制
a|=b ---> a=a|b

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

更新:

添加一些东西,因为您似乎需要对逻辑or进行简短的解释:只有当它的布尔操作数中至少有一个为true时,此操作符才返回true。请参阅wiki上的此页面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29093666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档