【问题标题】:map which will return the same value by any String keymap 将通过任何 String 键返回相同的值
【发布时间】:2020-02-28 09:49:28
【问题描述】:

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

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

【问题讨论】:

    标签: scala collections


    【解决方案1】:

    尝试为所有缺失的键定义一个空的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
    

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

    val m = Map.empty[String, Int].withDefault(k => ???)
    

    【讨论】:

    • 或者如果你根本不关心输入字符串,你也可以使用Map.empty[String, Int].withDefaultValue(1)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    相关资源
    最近更新 更多