Is there no XOR operator for booleans in golang?
I was trying to do something like b1^b2
but it said it wasn't defined for booleans.
Is there no XOR operator for booleans in golang?
I was trying to do something like b1^b2
but it said it wasn't defined for booleans.
There is not. Go does not provide a logical exclusive-OR operator (i.e. XOR over booleans) and the bitwise XOR operator applies only to integers.
However, an exclusive-OR can be rewritten in terms of other logical operators. When re-evaluation of the expressions (X and Y) is ignored,
X xor Y -> (X || Y) && !(X && Y)
Or, more trivially as Jsor pointed out,
X xor Y <-> X != Y
x != y
–
Bookmaker bool
, and it's spelled !=
. –
Lemley boolVar XOR boolFunc()
–
Czarevitch With booleans an xor is simply:
if boolA != boolB {
}
In this context not equal to
performs the same function as xor
: the statement can only be true if one of the booleans is true and one is false.
(s == "test") != ( s == "not test")
does not work –
Syndetic false != true
is true, which is the same as false XOR true
–
Uruguay Go support bitwise operators as of today. In case someone came here looking for the answer.
© 2022 - 2024 — McMap. All rights reserved.