Scalaでは、私はArray[Option[(String,String,Try[String])]]
を持っており、すべての失敗エラーコードを探したいと思います。内部モナドではなくOption[String]
であれば、私はそうのように、理解のためにきれいな少しでSome(x)
内容をネストされたOption/Tryモナドによるスカラフィルタ
アクセスすることができます。
for {
Some(row) <- row
(a,b,c) = row
x <- c
} yield x
しかし、内部モナドは失敗であるならば、私は苦労しています私はFailure(x) <- c
をforステートメントに入れることができないので、それをパターン化する方法を見てください。これは私が紛失している本当にシンプルなもののように感じますが、どんな指針も非常に貴重です。
多くの感謝!
EDIT - 配列を指定しました。これは実際には、tuple3sだけでなく、option-tuple3sの配列です。
ありがとう。それはまさに私が理解と一致のプロトコルを考え直すことによって逃した単純な答えです。オプションを削除するには、最初にflatMapを追加する必要がありました(編集を参照)。 – buggaby
ああああああああハングアップ...あなたの編集を見ていない... 'a.flatMap(x => x.map(_._ 3))。filter(_。isFailure)'のような何かをしなければならなかった? – mfirry
正確に。私はちょうどオプションの部分を削除する必要がありました。私はモナドでこれを行うより良い方法があるかもしれないと思うが、それは働いており、私はそれを少し洗っていくために全体のソリューションを再加工したくない。 – buggaby