如何删除找到:AnyVal required:scala中加倍?

Ayu*_*ush 1 scala type-mismatch scala-collections

我穿越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)
}
Run Code Online (Sandbox Code Playgroud)

所以错误就在里面val bin = largeset(capacity),capacity应该是双倍但是找到了AnyVal.提供任何解决方案或让我知道我做错了什么.

has*_*dic 5

欢迎来到SO.

您遇到的问题是由于您在Int未在您的密钥中找到密钥时提供的是默认值Map,而不是Double.如果你改变00.0或者0D它应该工作.即

cumulativeCapacity.keys.foreach { linkId =>
  val delay = cumulativeDelay.getOrElse(linkId, 0D)
  val capacity = cumulativeCapacity.getOrElse(linkId, 0D)
  val bin = largeset(capacity)
}
Run Code Online (Sandbox Code Playgroud)