有人可以解释什么是运算符&=
?
我进行了搜索,但我只获得&
或=
的结果。
答案 0 :(得分:11)
a &= b;
与
相同a = a & b;
&安培;是“按位和运算符”,搜索它。
答案 1 :(得分:7)
这是一个允许你崩溃的速记操作符
a = a & b
到
a &= b
除了对整数进行按位运算外,&=
也可用于布尔值,允许你折叠
a = a && b
到
a &= b
然而,在逻辑运算的情况下,扩展形式是短路的,而后者的折叠形式不会短路。
示例:
让b()
成为一个返回值的函数,并且还会影响程序的状态
让a
成为false
如果你这样做
a = a && b()
发生短路:由于a
为false
,因此无需评估b
(并且会跳过b()
内可能发生的额外计算。)< / p>
另一方面,如果你这样做
a &= b()
短路不会发生:b
在任何情况下都会被评估,即使a
为false
(评估b()
也不会改变逻辑结果),因此b()
内可能发生的任何额外计算都会被执行。
答案 2 :(得分:3)
此
x &= y;
相当于
x = x & y;
请注意&
是按位和运算符。
答案 3 :(得分:0)
如果我没记错,那就是biwise操作...例如它可以和[Flags] Enum一起使用。 它检查您的标志变量是否具有特定值。
答案 4 :(得分:0)
在C#中(我认为在大多数语言中)是按位赋值运算符。
a&amp; = b相当于a = a&amp; b
答案 5 :(得分:0)
a &= b
相当于a = a & b