我的代码片段如下
import scala.collection.mutable.HashMap
val crossingMap = new HashMap[String, Option[Long]]
val crossingData: String = ...
val time: Long = crossingMap.get(crossingData).getOrElse(0)
我收到以下编译错误
error: type mismatch;
found : Any
required: Long
val time: Long = crossingMap.get(crossingData).getOrElse(0)
最佳答案
您可能想要 crossingMap
包含 String -> Long
对。然后你可以进行以下操作
val crossingMap = new HashMap[String, Long]
val crossingData: String = ""
val time: Long = crossingMap.getOrElse(crossingData, 0)
如果你真的想要
crossingMap
类型为 Option[Long]
的值,那么你必须做一些类似的事情,val crossingMap = new HashMap[String, Option[Long]]
val crossingData: String = ""
val time: Long = crossingMap.getOrElse(crossingData, None).getOrElse(0)
关于scala - 如何正确使用 Scala Hashmaps 和 Options?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7047145/