如何在 Scala 中使用另一个选项获取 OrElse
How to getOrElse with another Option in Scala
假设我们有一个选项 foo1
和一个选项 foo2
:
val foo1: Option[Foo]
val foo2: Option[Foo]
是否有 operator/function 允许我在 foo1
为 None
时 return foo2
的值?
val finalFoo: Option[Foo] = foo1.getOrElseOption(foo2)
上面的getOrElseOption
显然不存在。我知道我们可以这样做,但它有点冗长且难以理解:
foo1.map(Some(_)).getOrElse(foo2).
Option
有点像偏函数,所以 orElse
会做你想做的事:
foo1 orElse foo2
假设我们有一个选项 foo1
和一个选项 foo2
:
val foo1: Option[Foo]
val foo2: Option[Foo]
是否有 operator/function 允许我在 foo1
为 None
时 return foo2
的值?
val finalFoo: Option[Foo] = foo1.getOrElseOption(foo2)
上面的getOrElseOption
显然不存在。我知道我们可以这样做,但它有点冗长且难以理解:
foo1.map(Some(_)).getOrElse(foo2).
Option
有点像偏函数,所以 orElse
会做你想做的事:
foo1 orElse foo2