如何迭代一个列表并过滤掉所有响应Result
不是Ok
的值?我想做类似于filter_map
的操作,但它说我需要返回一个Option
。
use std::result::Result;
fn match_value(vals: i32) -> Result<i32, i32> {
match vals {
2 => Ok(1),
_ => Err(0),
}
}
fn main() {
let values = vec![1, 2, 3, 2];
let matching = values
.iter()
.map(|name| match_value(*name))
.filter(|x| x.is_ok())
.collect::<Vec<_>>();
println!("{:?}", matching);
}
matching
的期望值是多少?如果你在问题中包含了这个信息,我们就不用浪费时间了。 - Shepmaster