为什么Map withDefaultValue返回Option = None

时间:2014-07-08 16:58:57

标签: scala map

我正在使用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

为什么不呢? 我怎样才能获得预期的行为?

1 个答案:

答案 0 :(得分:5)

您想使用apply代替get

scala> m("ss")
res0: Int = 0

apply返回Map的值类型,并将使用默认值。 get根据指定密钥的存在返回Option