我想执行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.
定义的其他类似扩展Boolean是and,or和not:
//very useful example
true.not().or(true).and(false).xor(true)
Run Code Online (Sandbox Code Playgroud)
找出数组中除了一个之外每个元素都重复的单个数字。
var a = 0
for (i in numsArray){
a = a xor i
}
return a
Run Code Online (Sandbox Code Playgroud)
例如。输入 = [2,2,1] 输出 = 1