如果你有两个地图(一个是可变的,另一个是不可变的),你如何将一个值与另一个的相应值相乘?
例如:
val testA = scala.collection.mutable.Map("£2" -> 3, "£1" -> 0,
"50p" -> 4, "20p" -> 0, "10p" -> 0, "5p" -> 0)
val testB = scala.collection.immutable.Map("£2" -> 2, "£1" -> 1,
"50p" -> 0.5, "20p" -> 0.2, "10p" -> 0.1, "5p" -> 0.05)
期待结果:
val total = scala.collection.immutable.Map("£2" -> 6, "£1" -> 0,
"50p" -> 2, "20p" -> 0, "10p" -> 0, "5p" -> 0)`
答案 0 :(得分:2)
您可以使用map
将每个值映射到该值乘以testB
上的查找结果(如果没有找到,则为1.0)
testA.map { case (k, v) => (k, v * testB.getOrElse(k, 1.0)) }