有val mapList: List[Map[String, Int]]
拼接地图,我想要做的事,如:斯卡拉从列表
val map = mapList foldLeft (Map[String, Int]()) (_ ++ _)
或
val map = mapList foldLeft (Map[String, Int]())
((m1: Map[String, Int], m2: Map[String, Int]) => m1 ++ m2)
也不选项编译(第一写着“丢失的参数类型扩展功能(x, y) => x ++ y
”第二种说法是“类型不匹配;发现(Map[String, Int], Map[String, Int]) => Map[String, Int];
要求:String
”)。
我想实现一个经典的解决方案来连接一个不可变的地图列表,如List(Map("apple" -> 5, "pear" -> 7), Map("pear" -> 3, "apricot" -> 0))
会产生一个Map("apple" -> 5, "pear" -> 10, "apricot" -> 0)
。使用scala 2.10.5
。
你可以使用它的元数-1的方法或方法0(尽管后者通常是灰心的)。您不能将它用于具有多个参数或多个参数列表的方法。 –
更加简洁地使用scalaz:'mapList.suml'。 – lmm
@Imm非常好! –