← 学习中心

枚举与模式匹配

用 enum + match 穷尽处理分支

本节你将能

定义枚举,并用 match 做穷尽分支处理。

直觉模型

枚举是「同一概念的多种形态」;match 强迫你盖住每一种形态,少漏一个分支就编不过。

核心要点

  • 变体可携带数据:Message::Move { x, y }
  • match 必须穷尽;也可用 if let 处理单分支
  • _ 通配剩余情况,但别滥用掩盖真正该处理的变体
enum Msg { Quit, Echo(String), Move { x: i32, y: i32 } }
fn handle(m: Msg) {
    match m {
        Msg::Quit => {}
        Msg::Echo(s) => println!("{s}"),
        Msg::Move { x, y } => println!("{x},{y}"),
    }
}

常见误区

用一长串布尔标志模拟状态机——枚举通常更清晰、更安全。

动手

为交通灯枚举写 next 方法。

互动

测验:判断 match 是否穷尽。

本节小结

下一节聚焦标准库里最重要的枚举:Option。

枚举与模式匹配 - 生命科学与前沿科技学习平台 | 必学必会