如何在Scala中将OrElse与另一个选项结合使用

时间:2018-11-19 22:09:03

标签: scala option partial-functions

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

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

foo2foo1时,是否有一个运算符/函数可以让我返回None的值?

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

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

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

1 个答案:

答案 0 :(得分:10)

Option的工作有点像部分函数,​​因此orElse会做您想要的事情:

foo1 orElse foo2