如何删除 found :AnyVal required :Double in scala ?
How to remove found :AnyVal required :Double in scala ?
我正在遍历 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
应该是 double 但发现 AnyVal
。提供任何解决方案或让我知道我做错了什么。
欢迎来到 SO。
您遇到的问题是由于您在 Map
中找不到密钥时提供 Int
作为默认值,而不是 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)
}
我正在遍历 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
应该是 double 但发现 AnyVal
。提供任何解决方案或让我知道我做错了什么。
欢迎来到 SO。
您遇到的问题是由于您在 Map
中找不到密钥时提供 Int
作为默认值,而不是 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)
}