我在寻找一个java项目的源代码,在这里我找到了一个布尔变量的运算符|=。
有人能告诉我这到底是什么吗?这也是最好的用法。
感谢回复,现在改进了我的问题:|=速记运算符实际上是做什么的。根据我的测试,它显示:
false | true = true
false | false = false
true | false = true
true | true = true但我仍然不清楚它是如何决定结果的。以及任何我可以使用它的用例。
谢谢
发布于 2015-03-17 15:42:00
a |= b;的含义与a = a | b;相同,a += b;的含义与a = a + b;相同。
只要您有a = a | b;形式的东西(这种情况很少见),并且想要缩短它,就可以使用它。
发布于 2015-03-17 15:50:43
正如你已经得到的答案,它是一个短的复合赋值运算符。所以如果你写下
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
----------------------------------------------------------------------------------------发布于 2015-03-17 15:45:29
它是对左操作数进行逻辑或的赋值的缩写形式。
a|=b ---> a=a|b您可以对其他运算符执行相同的操作:+、-、*、&、^等。
更新:
添加一些东西,因为您似乎需要对逻辑or进行简短的解释:只有当它的布尔操作数中至少有一个为true时,此操作符才返回true。请参阅wiki上的此页面。
https://stackoverflow.com/questions/29093666
复制相似问题