"2-6ren">
gpt4 book ai didi

Scala 映射 isDefinedAt() 与 contains() 方法

转载 作者:行者123 更新时间:2023-12-04 17:54:20 24 4
gpt4 key购买 nike

下面是我的HashMap:

val params1 = collection.mutable.HashMap[String, Any]()

params1 += "forCourseId" -> "2"

println(params1.isDefinedAt("forCourseId"))

println(params1.contains("forCourseId"))
isDefinedAt() 和有什么区别& contains()方法?

我需要检查 key 是否存在
主要关心的是,它不会抛出空指针异常。

最佳答案

您可以查看 Scala 源代码。在 MapLike.scala你会看到 isDefinedAt实际上只是调用 contains ,这意味着它们是真正相同的:

def isDefinedAt(key: A) = contains(key)

唯一真正的区别是 contains特定于 Map接口(interface)(特别是在 GenMapLike 上声明),而 isDefinedAt可在所有 PartialFunction 上找到类。
val m: Map[Int,Int] = Map(1 -> 2)
val pf: PartialFunction[Int,Int] = { case 1 => 1 }

m.isDefinedAt(1) // ok
m.contains(1) // ok
pf.isDefinedAt(1) // ok
pf.contains(1) // doesn't compile

关于Scala 映射 isDefinedAt() 与 contains() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com