以下代码将两个映射的值相加到一个映射中。
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 函数重写的正确方法是什么?