Questions tagged «rust-result»

3
当Iterator :: map返回Result :: Err时,如何停止迭代并返回错误?
我有一个返回的函数Result: fn find(id: &Id) -> Result<Item, ItemError> { // ... } 然后另一个像这样使用它: let parent_items: Vec<Item> = parent_ids.iter() .map(|id| find(id).unwrap()) .collect(); 如何处理任何map迭代中的失败情况? 我知道我可以使用flat_map,在这种情况下,错误结果将被忽略: let parent_items: Vec<Item> = parent_ids.iter() .flat_map(|id| find(id).into_iter()) .collect(); Result的迭代器根据成功状态有0或1个项目,flat_map如果为0 ,则会将其过滤掉。 但是,我不想忽略错误,而是想使整个代码块停止并返回一个新错误(基于映射内出现的错误,或者仅转发现有错误)。 我如何在Rust中最好地解决这个问题?
76 rust  rust-result 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.