如何在 Scala 中使用另一个选项获取 OrElse

How to getOrElse with another Option in Scala

假设我们有一个选项 foo1 和一个选项 foo2:

val foo1: Option[Foo]
val foo2: Option[Foo]

是否有 operator/function 允许我在 foo1None 时 return foo2 的值?

val finalFoo: Option[Foo] = foo1.getOrElseOption(foo2)

上面的getOrElseOption显然不存在。我知道我们可以这样做,但它有点冗长且难以理解:

foo1.map(Some(_)).getOrElse(foo2).

Option 有点像偏函数,所以 orElse 会做你想做的事:

foo1 orElse foo2