MST

星途 面试题库

面试题:Rust中如何将自定义错误类型与结构体结合并处理

在Rust中,假设你有一个结构体`User`,包含`name`和`age`字段。现在需要定义一个自定义错误类型`UserError`,当创建`User`实例时,如果`age`小于0则返回`UserError`。请写出相关代码,包括`User`结构体定义、`UserError`错误类型定义以及创建`User`实例的函数。
35.6万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义自定义错误类型
#[derive(Debug)]
struct UserError;

// 定义User结构体
struct User {
    name: String,
    age: i32,
}

// 创建User实例的函数
fn create_user(name: &str, age: i32) -> Result<User, UserError> {
    if age < 0 {
        Err(UserError)
    } else {
        Ok(User {
            name: name.to_string(),
            age,
        })
    }
}