匹配元组值

Rust 程序广泛使用模式匹配来解构值,无论是使用 matchif let 还是解构 let 模式。可以像使用 match 一样解构元组

fn foo(x: (&str, isize, bool)) {
    match x {
        (_, 42, _) => println!("it's 42"),
        (_, _, false) => println!("it's not true"),
        _ => println!("it's something else"),
    }
}

或与 if let

fn foo(x: (&str, isize, bool)) {
    if let (_, 42, _) = x {
        println!("it's 42");
    } else {
        println!("it's something else");
    }
}

你也可以使用 let-deconstruction 绑定元组内部

fn foo(x: (&str, isize, bool)) {
    let (_, n, _) = x;
    println!("the number is {}", n);
}