有没有办法将一堆或匹配项绑定到同名?
例如,在下面的代码中,我希望n是 或 匹配、1、2或 中的任何一个3。
fn main() {
match 2 {
n @ 1 | 2 | 3 => {
println!("{}", n);
}
_ => {},
}
}
Run Code Online (Sandbox Code Playgroud)
它抱怨:
error[E0408]: variable `n` is not bound in all patterns
--> src/main.rs:3:17
|
3 | n @ 1 | 2 | 3 => {
| - ^ ^ pattern doesn't bind `n`
| | |
| | pattern doesn't bind `n`
| variable not in all patterns
Run Code Online (Sandbox Code Playgroud)
只需用(括号)包围or匹配项()即可正确绑定:
fn main() {
match 2 {
n @ (1 | 2 | 3) => {
println!("{}", n);
}
_ => {},
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |