Rust 卫语句

可以加上 match 卫语句(guard) 来过滤分支。

fn main() {
    let pair = (2, -2);
    // 试一试 ^ 将不同的值赋给 `pair`

    println!("Tell me about {:?}", pair);
    match pair {
        (x, y) if x == y => println!("These are twins"),
        // ^ `if` 条件部分是一个卫语句
        (x, y) if x + y == 0 => println!("Antimatter, kaboom!"),
        (x, _) if x % 2 == 1 => println!("The first one is odd"),
        _ => println!("No correlation..."),
    }
}

在 match 中,若间接地访问一个变量,则不经过重新绑定就无法在分支中再使用它。match提供了 @ 符号来绑定变量到名称:// `age` 函数,返回一个 `u32` 值。fn age() -> u32 { 15}fn ...