Rust的match表达式

Rust的match表达式

match用于匹配各种情况,类似其他语言的 switch 或 case。

在 Rust 语言中,match 分支使用 模式匹配 (pattern matching)技术,match分支:

  • 左边是模式:
    • 不同分支可以是不同的模式
    • 必须穷尽每一种可能,所以通常最后使用通配符 _
  • 右边是执行代码
    • 同样所有分支必须返回同一个值
let number = 42;
match number {
    // 模式为单个值
    0 => println!("Origin"),
    // 模式为Range
    1...3 => println!("All"),
    // 模式为 多个值
    | 5 | 7 | 13  => println!("Bad Luck"),
    // 绑定模式,将模式中的值绑定给一个变量,供右边执行代码使用
    n @ 42 => println!("Answer is {}", n),
    // _ 通配符处理剩余情况
    _ => println!("Common"),
}

match语句可以直接用来赋值,代码比较简练:

let boolean = true;
let binary = match boolean {
    false => 0,
    true => 1,
};