私はfor
理解とflatMap
オプションに精通しています。
だから私はあなたが次のようなことができることを知っています
val a: Option[_] = for {
foo <- Some(x)
bar <- Some(y)
baz <- Some(z)
} yield baz
各ステートメントで実行しているSome(z)
ため、 for 内包表記に が何もない場合は、私に与えられます。None
flatMap
しかし、実際には、逆の方法で何かを探しています。内包内の a のように、for
すべてが である限り、内包までトラバースしたいと思います。None
orElse
for
例えば:
val b: Option[_] = for {
foo <- None
bar <- Some(x)
baz <- None
} yield *return the one with some*
このようなものはありますか、またはこれに最適なアプローチは何ですか?
前もって感謝します!