如何删除scala中的find:AnyVal required:Double?
我正在遍历Scala映射,代码中出现类型不匹配错误。这就是我要做的如何删除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
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)
}