代码之家  ›  专栏  ›  技术社区  ›  Some Name

在scala映射中更改键的最简单方法是什么?

  •  0
  • Some Name  · 技术社区  · 7 年前

    我有一个 mutable.Map 如果钥匙在,我需要换一把钥匙。如果不是,我想添加一个新的映射。我的意思是:

    val m = mutable.HashMap[String, String]()
    val default = "default"
    val key = "key_to_change"
    val newKey = "key_to_set"
    if(m.contains(key)) {
        val oldValue = m(key)
        m remove key
        m += newKey -> oldValue
    } else m += newKey -> default
    

    我想知道scala是否没有更简洁的方法来执行这种“密钥更改”。你能提出更好的解决办法吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Alexey Romanov    7 年前

    remove "removes a key from this map, returning the value associated previously with that key as an option" ,所以

    val value = m.remove(key).getOrElse(default)
    m += newKey -> value
    
    推荐文章