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

什么是异或?

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

符号1符号2结果
TTF
TFT
FTT
FFF

那么有啥用呢?
假设有代码:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值