我是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