我正在遍历Scala Map
,并且在代码中遇到type mismatch
错误。这就是我想要做的。
private var cumulativeCapacity:Map[String , Double] = Map()
private var cumulativeDelay:Map[String ,Double] = Map()
cumulativeCapacity.keys.foreach { linkId =>
val delay = cumulativeDelay.get(linkId).getOrElse(0)
val capacity = cumulativeCapacity.get(linkId).getOrElse(0)
val bin = largeset(capacity)
}
因此错误出现在val bin = largeset(capacity)
内,capacity
应该是双精度的,但发现是AnyVal
。提供我任何解决方案,或者让我知道我做错了什么。
答案 0 :(得分:5)
欢迎来到。
您遇到的问题是由于当您在Int
中找不到密钥而不是Map
时,您提供了Double
作为默认值。如果您将0
更改为0.0
或0D
,则应该可以使用。即
cumulativeCapacity.keys.foreach { linkId =>
val delay = cumulativeDelay.getOrElse(linkId, 0D)
val capacity = cumulativeCapacity.getOrElse(linkId, 0D)
val bin = largeset(capacity)
}