Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除scala中的find:AnyVal required:Double?_Scala_Scala Collections_Type Mismatch - Fatal编程技术网

如何删除scala中的find:AnyVal required:Double?

如何删除scala中的find:AnyVal required:Double?,scala,scala-collections,type-mismatch,Scala,Scala Collections,Type Mismatch,我正在遍历Scala映射,代码中出现类型不匹配错误。这就是我要做的 private var cumulativeCapacity:Map[String , Double] = Map() private var cumulativeDelay:Map[String ,Double] = Map() cumulativeCapacity.keys.foreach { linkId => val delay = cumulativeDelay.get(linkId).getOrEls

我正在遍历Scala映射,代码中出现类型不匹配错误。这就是我要做的

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=largesetcapacity中,即容量应该是原来的两倍,但可以找到AnyVal。如果我做错了什么,请提供解决方案或让我知道。

欢迎这样做

您遇到的问题是,当在地图中找不到密钥时,您提供了Int作为默认值,而不是Double。如果您将0更改为0.0或0D,它应该可以工作。i、 e

cumulativeCapacity.keys.foreach { linkId =>
  val delay = cumulativeDelay.getOrElse(linkId, 0D)
  val capacity = cumulativeCapacity.getOrElse(linkId, 0D)
  val bin = largeset(capacity)
}
欢迎来到SO

您遇到的问题是,当在地图中找不到密钥时,您提供了Int作为默认值,而不是Double。如果您将0更改为0.0或0D,它应该可以工作。i、 e

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