fn main() {
let f = 1;
match f {
foo => {
println!("{}",foo);
}
};
match f {
_ => {
println!("{}",f);
}
};
}
Run Code Online (Sandbox Code Playgroud)
两次比赛之间有什么区别吗?(均打印1)。谁能指出我记录了第一个比赛的位置?Rust书(直到第9章)似乎只提到了占位符_,但没有提到“您可以输入任何名称(例如,foo在这种情况下)作为匹配条件”。
这些只是模式。书中进一步详细记录了模式。模式有多种形式:
1,FOOenum解构:Some(y),Nonestruct 解构: Point { x, y }(42, foo)foo,foo @ (42, bar)1 ... 42_这两个示例之间没有什么区别,但是,命名模式在match表达式中通常不被视为顶级模式,而在子模式中,例如Some(foo)。但是,命名模式在函数参数和let绑定中极为常见。