我是Scala的新手,我正在寻找更简洁的方式来对地图值进行求和和组合。难道还有比下面的代码更好的方法:在Scala中对地图值进行求和和分组
def mapSum(thisMap: Map[Char, Int], thatMap: Map[Char, Int]) = {
thisMap.transform { (k, v) => thatMap(k) + v }
}
这将满足以下测试:
@Test
def mapSum() {
val map: Map[Char, Int] = Map('C' -> 1, 'D' -> 3)
val newMap = mapSum(map, map)
assertEquals(2, newMap('C'))
assertEquals(6, newMap('D'))
}
你是否假设地图总是有相同的密钥? –
如果他们不这样做(就像你正在学习的课程),你应该使用'.withDefault' –
@TravisBrown,他们总是有相同的密钥。 – Caps