MST

星途 面试题库

面试题:Rust Option类型的链式操作与错误处理

假设你有两个函数,`fetch_user_id` 和 `get_user_info`。`fetch_user_id` 返回 `Option<i32>`,代表从外部数据源获取用户ID,如果获取失败则返回 `None`。`get_user_info` 接受一个 `i32` 类型的用户ID,返回 `Option<String>`,代表获取用户信息,如果获取失败则返回 `None`。请使用 `Option` 类型的链式操作(`map`、`and_then` 等方法)编写代码,实现从获取用户ID到获取用户信息的完整流程,并处理可能出现的 `None` 情况,最终打印出用户信息或者错误提示。
27.5万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn fetch_user_id() -> Option<i32> {
    // 模拟从外部数据源获取用户ID
    Some(1)
}

fn get_user_info(user_id: i32) -> Option<String> {
    // 模拟根据用户ID获取用户信息
    Some("user info".to_string())
}

fn main() {
    match fetch_user_id().and_then(|id| get_user_info(id)) {
        Some(info) => println!("User info: {}", info),
        None => println!("Failed to get user info"),
    }
}