MST

星途 面试题库

面试题:Rust中复杂场景下Result和Option的模式匹配

假设有一个`Result<Option<Vec<i32>>, String>`类型的变量,它表示可能存在错误,并且成功时可能返回一个空的`Vec`或者非空的`Vec`。请使用模式匹配分别处理错误、空`Vec`和非空`Vec`的情况,并在非空`Vec`时计算其所有元素的和。
20.8万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn main() {
    let result: Result<Option<Vec<i32>>, String> = Ok(Some(vec![1, 2, 3]));

    match result {
        Ok(Some(vec)) if!vec.is_empty() => {
            let sum: i32 = vec.iter().sum();
            println!("非空Vec,元素和为: {}", sum);
        }
        Ok(Some(_)) => {
            println!("空Vec");
        }
        Ok(None) => {
            println!("空的Option");
        }
        Err(e) => {
            println!("错误: {}", e);
        }
    }
}