如何在Kotlin中使用XOR

unk*_*wn1 4 kotlin

我想执行XOR来查找两个布尔值a和b中的一个是否为真,但不是两个.在Kotlin中搜索XOR给了我这个答案

infix fun xor(other: Boolean): Boolean

在此布尔值与另一个布尔值之间执行逻辑xor运算.资源

我仍然对如何实现这一点感到困惑

s1m*_*nw1 11

它是一个可以在任何上面调用的扩展Boolean.你可以像这样使用它:

true.xor(false)
Run Code Online (Sandbox Code Playgroud)

或这个:

true xor false
Run Code Online (Sandbox Code Playgroud)

最后一个工作,因为函数定义为infix.

定义的其他类似扩展Booleanand,ornot:

//very useful example
true.not().or(true).and(false).xor(true)
Run Code Online (Sandbox Code Playgroud)


Smm*_* Sa 5

找出数组中除了一个之外每个元素都重复的单个数字。

var a = 0
for (i in numsArray){
    a = a xor i
}
return a
Run Code Online (Sandbox Code Playgroud)

例如。输入 = [2,2,1] 输出 = 1