fn main() {
let f = 1;
match f {
foo => {
println!("{}",foo);
}
};
match f {
_ => {
println!("{}",f);
}
};
}
两次比赛之间有什么区别吗? (均打印1)。谁能指出我记录了第一个比赛的位置? Rust书(直到第9章)似乎只提到占位符_
,但没有“您可以输入任何名称(例如foo
)作为匹配条件”。
答案 0 :(得分:5)
这些只是模式。 Patterns are documented in more details further in the book。模式有多种形式:
1
,FOO
enum
销毁:Some(y)
,None
struct
销毁:Point { x, y }
(42, foo)
foo
,foo @ (42, bar)
1 ... 42
_
这两个示例之间没有什么区别,但是,命名模式在match
表达式中通常不被视为顶级模式,而在子模式中,例如Some(foo)
。但是,命名模式在函数参数和let
绑定中极为常见。