【发布时间】:2015-07-10 13:07:40
【问题描述】:
拥有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。
【问题讨论】:
标签: scala dictionary fold