我正在使用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
Run Code Online (Sandbox Code Playgroud)
我期待res0成为0.
为什么不呢?我怎样才能获得预期的行为?
你想用apply而不是get.
scala> m("ss")
res0: Int = 0
Run Code Online (Sandbox Code Playgroud)
apply返回值的类型Map,并将使用默认值.根据指定键的存在get返回一个Option.