【编程是门艺术】异或大法好

什么是异或?

异或就是,符号相同为真,符号不同为假

符号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在这里没有办法使用。再次提一嘴,如果有什么更好的的方法,或者推荐的书籍,请各位艺术家们在下面留言。谢谢。小白需要你们的帮助才能成长。

发布了56 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/OldDirverHelpMe/article/details/103832700
今日推荐