我对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*
有没有这样的事情,或者最好的方法是什么?
提前致谢!