我正在使用Scala 2.10.4,我无法弄清楚为什么我无法获得非现有密钥的默认值。我得到的是Option[Int]
,其值为None
。
val m = Map[String, Int]().withDefaultValue(0)
//> m : scala.collection.immutable.Map[String,Int] = Map()
m.get("ss")
//> res0: Option[Int] = None
我希望res0为0
。
为什么不呢? 我怎样才能获得预期的行为?
答案 0 :(得分:5)
您想使用apply
代替get
。
scala> m("ss")
res0: Int = 0
apply
返回Map
的值类型,并将使用默认值。 get
根据指定密钥的存在返回Option
。