MST

星途 面试题库

面试题:Rust枚举类型在泛型和特质中的运用

定义一个泛型枚举 `MaybeValue<T>`,它可以是 `Nothing` 或者 `Just(T)`。接着定义一个特质 `Processable`,有一个方法 `process` 用于处理 `MaybeValue<T>`。为 `i32` 类型实现 `Processable` 特质,当 `MaybeValue` 是 `Just` 时,将值翻倍;当是 `Nothing` 时,返回0。编写代码展示如何使用这个特质和枚举。
33.6万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义泛型枚举 MaybeValue
enum MaybeValue<T> {
    Nothing,
    Just(T),
}

// 定义特质 Processable
trait Processable {
    fn process(&self) -> i32;
}

// 为 i32 类型实现 Processable 特质
impl Processable for MaybeValue<i32> {
    fn process(&self) -> i32 {
        match self {
            MaybeValue::Nothing => 0,
            MaybeValue::Just(x) => *x * 2,
        }
    }
}

fn main() {
    let just_value = MaybeValue::Just(5);
    let nothing_value = MaybeValue::Nothing;

    let result1 = just_value.process();
    let result2 = nothing_value.process();

    println!("Just(5) processed: {}", result1);
    println!("Nothing processed: {}", result2);
}