如何正确使用Scala哈希映射和选项?
下面是我的代码片段如何正确使用Scala哈希映射和选项?,scala,Scala,下面是我的代码片段 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:
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
值具有type选项[Long]
,则必须执行以下操作:
val crossingMap = new HashMap[String, Option[Long]]
val crossingData: String = ""
val time: Long = crossingMap.getOrElse(crossingData, None).getOrElse(0)
提示:
crossingMap.get(crossingData)
的类型是Option[Option[Long]]
。如果将字符串
映射到None
,那么您也可以先不进行映射,不是吗?这就是为什么(正如Kipton Barros所建议的)您可能需要一个HashMap[String,Long]
。