golang中的布尔值没有XOR运算符吗?

时间:2014-04-12 03:22:48

标签: go

golang中的布尔值没有XOR运算符吗?

我试图做b1^b2这样的事情,但它说它没有为布尔人定义。

2 个答案:

答案 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相同的功能:如果其中一个布尔值为真且一个为假,则该语句只能为真。