代码之家  ›  专栏  ›  技术社区  ›  yic_l

什么是“!”在这个函数中是什么意思?

  •  0
  • yic_l  · 技术社区  · 2 年前
    def checkHappynumber(n: Int): Boolean = {
    val set = scala.collection.mutable.HashSet[Int]()
    var num: Int = n
    while(num != 1) {
      var newnum: Int = 0
      while (num != 0) {
        newnum += (num % 10) * (num % 10)
        num /= 10
      }
      if(!set.add(newnum)){
        return false;
      }
      num = newnum
    }
    return true
    

    }

    什么是“!”在那里的角色?if(!set.add(newnum))?我知道hashset不能有重复的值。唯一的问题是如何“!”在这里工作。

    1 回复  |  直到 2 年前
        1
  •  2
  •   STerliakov Iver Finne    2 年前

    ! 是一个否定运算符( !true false , !false true ). HashSet.add 退货 真的 如果集合中不存在元素(已成功添加), 错误 否则此代码返回 错误 如果元素已经存在于哈希集中(尝试第二次添加它)。

    这是 documentation 属于 add 方法