一尘不染

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

go

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

我试图做类似的事情,b1^b2但它说它不是为布尔值定义的。


阅读 422

收藏
2021-12-19

共2个答案

一尘不染

那没有。围棋并没有提供一个逻辑异或运算(即XOR在布尔值)和按位异或操作仅适用于整数。

但是,异或可以根据其他逻辑运算符进行重写。当表达式(X 和 Y)的重新计算被忽略时,

X xor Y -> (X || Y) && !(X && Y)

或者,更像 Jsor 指出的那样,

X xor Y <-> X != Y
2021-12-19
一尘不染

对于布尔值,异或很简单:

if boolA != boolB {

}

在此上下文中not equal to执行与以下相同的功能xor:该语句仅当布尔值之一为真而一个为假时才为真。

2021-12-19