【发布时间】:2020-08-09 08:06:21
【问题描述】:
假设我有带有 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
如何解决?
【问题讨论】:
-
some.getOrElse(None)相当于什么都不做。如果 Option 为空怎么办?没做什么?另外,您确定要forach或者map还是其他高级功能可能更好? -
为什么 some.getOrElse(None) 相当于什么都不做? some 不是 Some() 对象,它是我自己的类。我想避免 None.get exeption - 如果 Option 包含 None - 返回 None。否则迭代 throw map。
-
getOrElse获取值或默认值,如果是 None 那么是的,它实际上不等于什么都不做,更糟糕的是,因为你会带有 Any 类型的值。也许你想要的是opt.map { map => map.map { case (key, value) =>???}}