MST

星途 面试题库

面试题:Rust自定义错误类型与结构体结合时的泛型应用

定义一个泛型结构体`ResultContainer<T>`,用于包装可能成功或失败的操作结果。定义一个自定义错误类型`ContainerError`,在实现`ResultContainer`的`unwrap`方法时,如果操作失败则返回`ContainerError`。同时,`ResultContainer`需要能够处理不同类型的错误,通过泛型来实现错误类型的动态绑定。请写出完整代码实现。
29.2万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

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

// 定义泛型结构体ResultContainer,包装操作结果
struct ResultContainer<T, E> {
    result: std::result::Result<T, E>,
}

impl<T, E> ResultContainer<T, E> {
    // 实现unwrap方法,如果操作失败返回ContainerError
    fn unwrap(self) -> Result<T, ContainerError> {
        match self.result {
            Ok(value) => Ok(value),
            Err(_) => Err(ContainerError),
        }
    }
}