MST
星途 面试题库

面试题:Rust枚举类型在泛型与模式匹配中的应用

定义一个名为`MaybeValue`的枚举,它有两个变体:`Value(T)`和`Empty`,其中`T`是泛型类型。编写一个函数`unwrap_value`,接受`MaybeValue<T>`类型的参数,如果是`Value`变体则返回内部的值,如果是`Empty`变体则返回`None`。此外,使用模式匹配实现一个函数`print_maybe_value`,该函数接受`MaybeValue<String>`类型的参数,并根据其变体打印相应信息。
48.7万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义MaybeValue枚举
enum MaybeValue<T> {
    Value(T),
    Empty,
}

// 定义unwrap_value函数
fn unwrap_value<T>(mv: MaybeValue<T>) -> Option<T> {
    match mv {
        MaybeValue::Value(v) => Some(v),
        MaybeValue::Empty => None,
    }
}

// 定义print_maybe_value函数
fn print_maybe_value(mv: MaybeValue<String>) {
    match mv {
        MaybeValue::Value(s) => println!("Value: {}", s),
        MaybeValue::Empty => println!("Empty"),
    }
}