映射将通过任何字符串键返回相同的值

Vad*_*dim 1 collections scala

我有带有输入参数映射的方法接口。我想添加当此映射通过任何字符串键返回相同值时调用此方法。您能帮我定义一个映射,该映射将通过任何字符串键返回相同的值吗?

def test(m: Map[String, Int]): Unit = {
  // some logic
}

val m = Map((???, 1))

m("")
res0: Int = 1

m("a")
res0: Int = 1

m("b")
res0: Int = 1
Run Code Online (Sandbox Code Playgroud)

Fey*_*yaz 5

尝试Map为所有缺失的键定义一个带有默认值的空值。

// updated after @Scalway's suggestion
val m = Map.empty[String, Int].withDefaultValue(1)

@ m("") 
//res1: Int = 1

@ m("a") 
//res2: Int = 1

@ m("asjkdhfk") 
//res3: Int = 1
Run Code Online (Sandbox Code Playgroud)

或者如果你想做一些计算:

val m = Map.empty[String, Int].withDefault(k => ???)
Run Code Online (Sandbox Code Playgroud)

  • 或者如果您根本不关心输入字符串,您也可以使用`Map.empty[String, Int].withDefaultValue(1)` (2认同)