我发现value ^= true;
适用于通过false和true更改布尔值,我想了解它为什么有效以及^做了什么,谢谢
^
是一个按位异或。 ^=
是一个按位XOR compound assignment operator,就像增加一个整数时一样:x += 3
所以你的表达相当于value = value XOR true
。
它是按位异或和赋值运算符。
value ^ = true等价于value = value ^ true
二进制异或运算符如果在一个操作数中设置但不在两个操作数中设置,则复制该位。
例子a = 0011 1100 b = 0000 1101
a ^ b = 0011 0001