如何使用Scala中的另一个选项获取ORErEse

Yuc*_*ong 1 scala option partial-functions

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

val foo1: Option[Foo]
val foo2: Option[Foo]
Run Code Online (Sandbox Code Playgroud)

是否有运营商/功能,让我返回的值foo2foo1None

val finalFoo: Option[Foo] = foo1.getOrElseOption(foo2)
Run Code Online (Sandbox Code Playgroud)

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

foo1.map(Some(_)).getOrElse(foo2).
Run Code Online (Sandbox Code Playgroud)

Tim*_*Tim 12

Option有点像部分功能,所以orElse会做你想要的:

foo1 orElse foo2
Run Code Online (Sandbox Code Playgroud)