什么是异或?
异或就是,符号相同为真,符号不同为假
符号1 | 符号2 | 结果 |
---|---|---|
T | T | F |
T | F | T |
F | T | T |
F | F | F |
那么有啥用呢?
假设有代码:
val str="123"
var flag1 = false
var flag2 = false
if(str.contains("1")) { //这里面是1
flag1 = true
}
if(!str.contains("2")){ //这里面是2 与上面的1 不相同
flag2 = true
}
println(flag1) // 程序结果显示为true
println(flag2) // 程序结果显示 false
这两行代码看着差不多,如何将这两行代码统一起来?与(&)或(|)非(!)
好像都不能解决我们的问题(反正我没有解决,期望看到这篇文章的大佬能够在下面评论处给出解答,我想学习一下,谢谢)
下面就是我封装的方法,好像并没有想象中的那么666的样子,但是效果也是达到了
def myContains(matchStr:String,searchStr:String,boolean: Boolean): Boolean ={
var flag:Boolean=false
if(!boolean^searchStr.contains(searchStr)) {
flag=true
}
flag
}
def main(args: Array[String]): Unit = {
val str="123"
println(myContains(str, "1", true)) // 打印结果为true
println(myContains(str, "2", false)) //打印结果为false
}
总结一下:
这篇文章主要是用异或^
符号实现编程语言当中的!
符号。可以实现我的需求,因为一个判断条件的正负两面的传入条件不是一致的,所以单纯的if
在这里没有办法使用。再次提一嘴,如果有什么更好的的方法,或者推荐的书籍,请各位艺术家们在下面留言。谢谢。小白需要你们的帮助才能成长。