MST

星途 面试题库

面试题:Rust 基本数据类型之Option类型深入应用

假设有一个函数`fetch_user_data`,它返回`Option<(String, i32)>`,其中`Some`包含用户名(`String`类型)和用户年龄(`i32`类型),`None`表示数据获取失败。编写代码来调用这个函数,并在数据获取成功时打印用户名和年龄,在失败时打印一条错误信息。同时,要考虑如何优雅地处理可能出现的所有权转移和借用问题。
13.0万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn fetch_user_data() -> Option<(String, i32)> {
    // 模拟获取数据,这里返回None作为示例
    None
}

fn main() {
    match fetch_user_data() {
        Some((username, age)) => {
            println!("Username: {}, Age: {}", username, age);
        }
        None => {
            println!("Failed to fetch user data");
        }
    }
}

上述代码通过match表达式对fetch_user_data的返回值进行处理,成功时打印用户名和年龄,失败时打印错误信息。这种方式很好地处理了所有权转移和借用问题,usernameSome分支内获取所有权并使用,而整个过程中没有产生悬垂引用等借用相关问题。