如何调用 getOrElse + foreach

How to call getOrElse + foreach

假设我有案例 class,上面有 Option[Map[String, String],我想迭代抛出它。

此代码在 Scala 2.13 中有效,但在 Scala 2.11 中构建失败。

some.getOrElse(None).foreach {
case (key: String, value: String) =>
  if true doSomething
}

它说 Cannot resolve symbol foreach 如何解决?

它无法在 2.13(或 2.12)上编译,因此您的代码显然存在问题。

我认为你想做的是:

some.map(_.map {
  case (key: String, value: String) =>
    ???
})

如果 someNone,这将 return None,否则它将在 Map 和 [=23] 上调用 map =] 结果在 Some(?).

为什么不默认为空地图?

some.getOrElse(Map.empty()).foreach {
case (key: String, value: String) =>
  if true doSomething
}