我想执行XOR以查找两个布尔值a和b中的一个是否为真,但不是两个。在Kotlin中搜索XOR给了我这个答案
infix fun xor(other: Boolean): Boolean
在此布尔值与另一个布尔值之间执行逻辑xor运算。 source
我仍然对如何实现这个
感到困惑答案 0 :(得分:9)
这是可以在任何Boolean
上调用的扩展程序。您可以像这样使用它:
true.xor(false)
或者这个:
true xor false
最后一个有效,因为该函数定义为infix
。
Boolean
上定义的其他类似扩展程序为and
,or
和not
:
//very useful example
true.not().or(true).and(false).xor(true)
答案 1 :(得分:1)
在数组中找出除一个元素外每个元素都有重复的单个数字。
var a = 0
for (i in numsArray){
a = a xor i
}
return a
例如。输入 = [2,2,1] 出 = 1