面试题答案
一键面试// 定义泛型枚举
enum ResultEnum<T, E> {
Ok(T),
Err(E),
}
// 定义解析函数
fn parse_number(s: &str) -> ResultEnum<i32, String> {
match s.parse::<i32>() {
Ok(num) => ResultEnum::Ok(num),
Err(e) => ResultEnum::Err(e.to_string()),
}
}
// 定义处理函数
fn process_numbers(results: Vec<ResultEnum<i32, String>>) -> (i32, Vec<String>) {
let mut sum = 0;
let mut errors = Vec::new();
for result in results {
match result {
ResultEnum::Ok(num) => sum += num,
ResultEnum::Err(err) => errors.push(err),
}
}
(sum, errors)
}