MST

星途 面试题库

面试题:Rust Option枚举在异步编程及错误处理中的深度应用

在一个异步Rust程序中,你需要从数据库异步获取用户信息,返回值是`Option<Result<User, DatabaseError>>`类型,其中`User`是自定义结构体,`DatabaseError`是自定义错误类型。请编写异步代码处理这个返回值,当结果为`Some(Ok(user))`时,打印用户信息;当结果为`Some(Err(e))`时,记录错误日志;当结果为`None`时,记录一条`用户未找到`的日志。假设已有`log_error`和`log_message`函数用于记录日志。
42.6万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
async fn process_user_info(result: Option<Result<User, DatabaseError>>) {
    match result {
        Some(Ok(user)) => {
            println!("{:?}", user);
        }
        Some(Err(e)) => {
            log_error(&format!("Database error: {:?}", e));
        }
        None => {
            log_message("用户未找到");
        }
    }
}