【发布时间】:2019-09-10 12:23:18
【问题描述】:
以下代码将两个映射的值相加成一个映射。
val merged = (map1 /: map2) { case (map, (k,v)) =>
map + ( k -> (v + map.getOrElse(k, 0)) )
}
但是,我无法使用 foldLeft()() 函数对其进行转换。
这是我尝试过的,但无法取得有意义的进展。
val merged2 = map2 foldLeft (map1) ((acc:Map[Int,Int], (k:Int,v:Int)) => acc + ( k -> (v + acc.getOrElse(k, 0)) ))
使用 foldLeft 函数重写的正确方法是什么?
【问题讨论】:
-
我建议你使用 scalaz 添加两张地图
-
嗨@RamanMishra,谢谢小费!我刚刚开始使用 scala