在有些时候,Rust代码的模式守卫
与@绑定
是效果相等的,可以相互替换。有的时候,感觉模式守卫
的语法更易读;
以下示例来自Rust权威指南的第18章的18.3.7小节
把模式守卫改为@绑定
修改前
fn main() {
let num = Some(4);
match num {
Some(x) if x < 5 => println!("less than five: {}", x),
Some(x) => println!("{}", x),
None => (),
}
}
修改后
fn