更新scala中的密钥

Gar*_*aso 1 scala scala-collections

我必须根据特定条件更新地图中的键.值不会被修改.

我最终得到了这段代码,但看起来并不整齐,有没有更好的替代方法:

val newOpt =  inOpt("type") match {

  case "mydb" =>
    inOpt map { case (key, value) => (

      if (key.contains(XXXX)) {
        key.replace("A", "B")
      }
      else if(...){..}
      else {
        key
      }


      , value)
    }
}
Run Code Online (Sandbox Code Playgroud)

所有更新的密钥以及旧密钥和值都将在newOpt中.

问候

小智 5

试试这个

val m = Map(1->"hi",2->"Bye")
scala.collection.immutable.Map[Int,String] = Map(1 -> hi, 2 -> Bye)
Run Code Online (Sandbox Code Playgroud)

用5更新密钥2

m.map{x=> if(x._1 == 2) (5 -> x._2) else x}
scala.collection.immutable.Map[Int,String] = Map(1 -> hi, 5 -> Bye)
Run Code Online (Sandbox Code Playgroud)