我对for
理解和flatMap
选项非常熟悉。
所以我知道你可以做类似的事情
val a: Option[_] = for {
foo <- Some(x)
bar <- Some(y)
baz <- Some(z)
} yield baz
Some(z)
如果 for 理解中没有任何内容,这给了我is None
,因为它对flatMap
每个语句都执行 a 。
但实际上我正在寻找相反的东西。我想遍历for
理解,只要一切都是None
,就像orElse
一个for
理解。
例如:
val b: Option[_] = for {
foo <- None
bar <- Some(x)
baz <- None
} yield *return the one with some*
有没有这样的事情,或者最好的方法是什么?
提前致谢!