让我们假设我们有一个选项foo1
和一个选项foo2
:
val foo1: Option[Foo]
val foo2: Option[Foo]
当foo2
为foo1
时,是否有一个运算符/函数可以让我返回None
的值?
val finalFoo: Option[Foo] = foo1.getOrElseOption(foo2)
上面的getOrElseOption
不存在。我知道我们可以做这样的事情,但这有点冗长且难以理解:
foo1.map(Some(_)).getOrElse(foo2).
答案 0 :(得分:10)
Option
的工作有点像部分函数,因此orElse
会做您想要的事情:
foo1 orElse foo2