MST
星途 面试题库

面试题:Rust match表达式在复杂数据结构中的模式匹配

给定如下结构体嵌套枚举的复杂数据结构: ```rust enum InnerType { Value(i32), Text(String) } struct OuterStruct { data: InnerType, flag: bool } ``` 编写一个`match`表达式,当`OuterStruct`的`flag`为`true`且`data`为`InnerType::Value`时,将`Value`中的值翻倍并返回;当`flag`为`true`且`data`为`InnerType::Text`时,返回字符串长度;当`flag`为`false`时,返回 - 1。
24.6万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn process_struct(outer: OuterStruct) -> i32 {
    match outer {
        OuterStruct { flag: true, data: InnerType::Value(val) } => val * 2,
        OuterStruct { flag: true, data: InnerType::Text(text) } => text.len() as i32,
        _ => -1,
    }
}