Scala map 转换

标签 scala map

恐怕我是 Scala 新手:
我正在尝试根据一些简单的逻辑将 Map 转换为新 Map:

val postVals = Map("test" -> "testing1", "test2" -> "testing2", "test3" -> "testing3")

我想测试值“testing1”并更改值(在创建新 map 时)
def modMap(postVals: Map[String, String]): Map[String, String] = {
  postVals foreach {case(k, v) => if(v=="testing1") postVals.update(k, "new value")}
}

最佳答案

您可以使用“ map ”方法。通过将给定的函数应用于它的所有元素来返回一个新集合:


scala> def modMap(postVals: Map[String, String]): Map[String, String] = {
   postVals map {case(k, v) => if(v == "a") (k -> "other value") else (k ->v)}
}

scala> val m = Map[String, String]("1" -> "a", "2" -> "b")
m: scala.collection.immutable.Map[String,String] = Map((1,a), (2,b))

scala> modMap(m)
res1: Map[String,String] = Map((1,other value), (2,b))

关于Scala map 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2894862/

相关文章:

c++ - 错误 C2064 : term does not evaluate to a function taking 0 arguments

scala - 是否可以/建议对 Akka 2 Actor 的不同 child 采取不同的监督策略?

scala - 将类作为值传递并创建实例

java - Java 转 Scala,如何处理调用父类(super class)构造函数?

r - 如何使用 ggvis 和映射包(即 ggmap)在 map 上交互地绘制空间数据

c++ - std::map 运算符 [] 和 size() 的排序

c++ - 如何强制我的 std::map 释放使用的内存?

scala - 编译器无法识别自类型注释

scala - 找不到懒惰的隐式 val

android - 将纬度/经度值(DMS+罗盘方向格式)转换为Android中相应的小数点值