Scala:元组映射的默认值

Scala:元组映射的默认值,scala,Scala,查看以下地图: scala> val v = Map("id" -> ("_id", "$oid")).withDefault(identity) v: scala.collection.immutable.Map[String,java.io.Serializable] = Map(id -> (_id,$oid)) 编译器生成一个Map[String,java.io.Serializable],并且id的值可以如下方式检索: scala> v("id") res37

查看以下
地图

scala> val v = Map("id" -> ("_id", "$oid")).withDefault(identity)
v: scala.collection.immutable.Map[String,java.io.Serializable] = Map(id -> (_id,$oid))
编译器生成一个
Map[String,java.io.Serializable]
,并且
id
的值可以如下方式检索:

scala> v("id")
res37: java.io.Serializable = (_id,$oid)
现在,如果我试图访问一个不存在的元素,就像这样

scala> v("idx")
res45: java.io.Serializable = idx
。。。然后,正如预期的那样,我找回了钥匙本身。。。但是我如何得到一个包含键本身和一个空字符串的元组呢

scala> v("idx")
resXX: java.io.Serializable = (idx,"")
无论元素是否存在,我总是需要返回一个元组


谢谢。

而不是
。使用默认(标识)
您可以使用

val v = Map("id" -> ("_id", "$oid")).withDefault(x => (x, ""))
withDefault
将需要时创建默认值的函数作为参数


这也会将返回类型从无用的
可序列化的
更改为更有用的
(字符串,字符串)
,而不是
。使用默认值(标识)
,您可以使用

val v = Map("id" -> ("_id", "$oid")).withDefault(x => (x, ""))
withDefault
将需要时创建默认值的函数作为参数

这也会将返回类型从无用的
可序列化的
更改为更有用的
(字符串,字符串)