我有一个Map[String, Double]的列表,我想将它们的内容合并为一个Map[String, Double]。我应该如何以惯用方式实现这一点?我想我应该能够使用fold来实现。大概像这样:
val newMap = Map[String, Double]() /: listOfMaps { (accumulator, m) => ... }
此外,我希望以通用的方式处理关键字冲突。也就是说,如果我向地图添加已经存在的关键字,则应该能够指定一个函数,该函数返回一个Double值(在这种情况下),并使用该关键字的现有值以及我正在尝试添加的值作为参数。如果地图中不存在该关键字,则只需添加该关键字和其未更改的值。
在我的具体情况下,我想构建一个单一的Map [String,Double],以便如果地图已经包含一个关键字,则将Double值添加到现有的地图值中。
在我的具体代码中,我正在使用可变映射,但如果可能的话,我对更通用的解决方案感兴趣。