You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust中结构体式枚举值的if let语法用法咨询

Rust结构体风格枚举变体的匹配语法

你的Event::Key是带命名字段的结构体风格枚举变体,因此在if let匹配时需要使用结构体模式来解构获取内部数据,以下是几种可行的填充方式:

  • 完整解构所有字段:
    直接列出所有字段名,解构后可在代码块内直接使用这些变量:

    fn main() {
        let event = Event::Key {
            key: 42,
            physical_key: None,
            pressed: true,
        };
        if let Event::Key { key, physical_key, pressed } = event {
            // 示例:打印字段值
            println!("Key code: {}, pressed: {}, physical key: {:?}", key, pressed, physical_key);
        }
    }
    
  • 只解构需要的字段,忽略剩余字段:
    如果不需要所有字段,用..表示忽略其他未列出的字段,减少冗余:

    fn main() {
        let event = Event::Key {
            key: 42,
            physical_key: None,
            pressed: true,
        };
        if let Event::Key { key, pressed, .. } = event {
            println!("Key code: {}, pressed: {}", key, pressed);
        }
    }
    
  • 给解构后的字段重命名:
    若变量名冲突或需要更清晰的命名,可使用原字段名: 新变量名的形式重命名:

    fn main() {
        let event = Event::Key {
            key: 42,
            physical_key: None,
            pressed: true,
        };
        if let Event::Key { key: code, pressed: is_pressed, .. } = event {
            println!("Key code: {}, pressed status: {}", code, is_pressed);
        }
    }
    

内容的提问来源于stack exchange,提问作者pm100

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 07:12:03