MST

星途 面试题库

面试题:Rust中Result和Option在复杂逻辑下的模式匹配优化

假设你正在处理一个涉及多层嵌套`Result`和`Option`的复杂数据结构,如下:`struct ComplexData { field1: Result<Option<Vec<Result<i32, String>>>, String> }`。编写一个函数`fn extract_values(data: ComplexData) -> Vec<i32>`,通过模式匹配提取出所有成功的整数值,要求代码在处理错误和空值时尽可能简洁高效,并且符合Rust的最佳实践。
18.7万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
struct ComplexData {
    field1: Result<Option<Vec<Result<i32, String>>>, String>
}

fn extract_values(data: ComplexData) -> Vec<i32> {
    match data.field1 {
        Ok(Some(vec)) => vec.into_iter()
                           .filter_map(|result| result.ok())
                           .collect(),
        _ => Vec::new()
    }
}