golang中的布尔值没有XOR运算符吗?
我试图做b1^b2
这样的事情,但它说它没有为布尔人定义。
答案 0 :(得分:55)
没有。 Go 不提供a logical异或运算符(即XOR超过布尔值),而the bitwise XOR operator仅适用于整数。
但是,an exclusive-OR可以用其他逻辑运算符重写。当重新评估表达式(X和Y)时,
X xor Y -> (X || Y) && !(X && Y)
或者,正如Jsor指出的那样,更为琐碎,
X xor Y <-> X != Y
答案 1 :(得分:34)
对于布尔人而言,xor就是:
if boolA != boolB {
}
在此上下文中,not equal to
执行与xor
相同的功能:如果其中一个布尔值为真且一个为假,则该语句只能为真。