将变量与不使用匹配值的模式保护匹配的首选方式是什么?

Mat*_*vid 4 rust

在以下两个摘要之间,哪个是更好的/首选的?

fn main() {
    let pair = 7;

    match pair {
        pair if pair > 5 => println!("Yeah"),
        _ => println!("No"),
    }
}
Run Code Online (Sandbox Code Playgroud)
fn main() {
    let pair = 7;

    match pair {
        _ if pair > 5 => println!("Yeah"),
        _ => println!("No"),
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来编写此代码?因为这不起作用:

fn main() {
    let pair = 7;

    match pair {
        > 5 => println!("Yeah"),
        _ => println!("No"),
    }
}
Run Code Online (Sandbox Code Playgroud)

She*_*ter 6

不绑定匹配变量的版本是首选的:

fn main() {
    let pair = 7;

    match pair {
        _ if pair > 5 => println!("Yeah"),
        _ => println!("No"),
    }
}
Run Code Online (Sandbox Code Playgroud)

这是具有匹配项的最短版本。当然,此示例可以仅使用if

实际上,我很惊讶第一个版本没有给出有关未使用变量的警告。

啊,这是我的愚蠢。该变量这里使用,在模式守卫。^ _ ^