Как удалить найденные: AnyVal требуется: Double in scala? - PullRequest
0 голосов
/ 12 декабря 2018

Я пересекаю 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.Предоставьте мне какое-либо решение или дайте мне знать, если я делаю что-то не так.

1 Ответ

0 голосов
/ 12 декабря 2018

Добро пожаловать в SO.

Проблема, с которой вы столкнулись, связана с тем, что вы предоставляете 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)
}
...