MST

星途 面试题库

面试题:Rust枚举类型在泛型和trait中的应用

定义一个泛型枚举`ResultEnum`,包含`Ok`和`Err`变体,`Ok`关联一个泛型类型`T`,`Err`关联一个泛型类型`E`。接着定义一个`trait` `ProcessResult`,包含一个方法`process`,该方法接收`ResultEnum`实例并处理结果(`Ok`时打印值,`Err`时打印错误信息)。请实现这个`trait`并在`main`函数中测试。
41.6万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义泛型枚举
enum ResultEnum<T, E> {
    Ok(T),
    Err(E),
}

// 定义trait
trait ProcessResult<T, E> {
    fn process(&self, result: ResultEnum<T, E>);
}

// 实现trait
impl<T, E> ProcessResult<T, E> for () {
    fn process(&self, result: ResultEnum<T, E>) {
        match result {
            ResultEnum::Ok(value) => println!("Ok: {:?}", value),
            ResultEnum::Err(error) => println!("Err: {:?}", error),
        }
    }
}

fn main() {
    let ok_result = ResultEnum::Ok(42);
    let err_result = ResultEnum::Err("Something went wrong");

    let processor: &() = &();
    processor.process(ok_result);
    processor.process(err_result);
}