我希望使用一个筛选函数,该函数可能会返回一个Err
结果,并将其传递到包含的函数中:
mycoll.into_iter()
.filter(|el| {
if el == "bad" {
Err(MyError)
} else {
Ok(el < "foo")
}
})
我在这方面找到了一个很好的解释,关于如何处理使用
map()
时遇到的这种情况(通过使用 .collect::<Result<...>>()
),请参考以下链接:如何在 Iterator::map 返回 Result::Err 时停止迭代并返回错误?但我无法找到类似的解决方案适用于 filter()
。
这里有什么惯用的解决方案?