gpt4 book ai didi

filter - 你如何处理 Rust filter() 中的错误?

转载 作者:行者123 更新时间:2023-12-03 07:46:26 55 4
gpt4 key购买 nike

我想使用一个可能返回 Err 的过滤器函数结果,并将其冒泡到包含函数:

mycoll.into_iter()
.filter(|el| {
if el == "bad" {
Err(MyError)
} else {
Ok(el < "foo")
}
})

当涉及到 map() 时,我找到了一个关于如何处理此类案例的很好的解释。 (使用 .collect::<Result<...>>() ):How do I stop iteration and return an error when Iterator::map returns a Result::Err?但我无法获得适用于 filter() 的类似解决方案.

这里的惯用解决方案是什么?

最佳答案

我可能会建议使用 filter_map .您的示例如下所示:

mycoll.into_iter()
.filter_map(|el| {
if el == "bad" {
Some(Err(MyError))
} else if el < "foo" {
Some(Ok(el))
} else {
None
}
})

关于filter - 你如何处理 Rust filter() 中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63662437/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com