私は一連のJson
オブジェクトを解析して、機能全体を取り消す可能性のある障害を解析しようとしています。潜在的な障害に対応する良い方法
理想的には、私のような何かをしたい:
fn .... -> Result<Vec<Video>, YoutubeParseError> {
...
let videos = try!(doc.find("items").
and_then(Json::as_array).
ok_or(YoutubeParseError));
Ok(videos.into_iter().
map(|item| try!(json_to_video(item))).
collect())
}
しかし、もちろんトライの誤差にmap()
を脱出し、代わりにResult<Vec<Video>,_>
のはありませんが、私はVec<Result<Video,_>>
を取得します。これを新しいvecに要素を追加する手動反復として書き直すことができましたが、これを処理する簡単な方法がないように感じられます。
Iter<Result<T>>
からResult<Vec<T>,_>
に簡単に入る機能がありますか?
私は2番目の試しとは思わない!あなたが望むように動作します。試してみて!閉鎖のあなたを得るでしょう。ところで、あなたは 'flat_map'を見ましたか? – sgldiv