golang中没有布尔值的异或运算符吗?
我试图做类似的事情,b1^b2但它说它不是为布尔值定义的。
b1^b2
那没有。围棋并没有提供一个逻辑异或运算(即XOR在布尔值)和该按位异或操作仅适用于整数。
但是,异或可以根据其他逻辑运算符进行重写。当表达式(X 和 Y)的重新计算被忽略时,
X xor Y -> (X || Y) && !(X && Y)
或者,更像 Jsor 指出的那样,
X xor Y <-> X != Y
对于布尔值,异或很简单:
if boolA != boolB { }
在此上下文中not equal to执行与以下相同的功能xor:该语句仅当布尔值之一为真而一个为假时才为真。
not equal to
xor