教程 rust tutorial

枚举 Enums

枚举用于定义一组有限的可能值,常用于状态机、错误处理等场景。

定义枚举

rust
enum Message {
    Quit,
    Move { x: i32, y: i32 },
    Write(String),
    ChangeColor(i32, i32, i32),
}

使用枚举

rust
fn main() {
    let msg = Message::Write(String::from("hello"));
    match msg {
        Message::Quit => println!("Quit"),
        Message::Move { x, y } => println!("Move to ({}, {})", x, y),
        Message::Write(text) => println!("Text message: {}", text),
        Message::ChangeColor(r, g, b) => println!("Change color to RGB({}, {}, {})", r, g, b),
    }
}

关联数据

枚举成员可以携带数据,支持多样化表达。

Option 枚举

Rust 标准库中的 Option<T> 是枚举的经典示例,用于表示有或无值:

rust
let some_number = Some(5);
let absent_number: Option<i32> = None;

Rust Playground
打开运行
enum Message {
    Quit,
    Move { x: i32, y: i32 },
    Write(String),
    ChangeColor(i32, i32, i32),
}

fn main() { let msg = Message::Write(String::from("hello")); match msg { Message::Quit => println!("Quit"), Message::Move { x, y } => println!("Move to ({}, {})", x, y), Message::Write(text) => println!("Text message: {}", text), Message::ChangeColor(r, g, b) => println!("Change color to RGB({}, {}, {})", r, g, b), } }