#rust #match
#Ржавчина #сопоставление
Вопрос:
Есть ли способ привязки к одному и тому же имени группы сопоставлений or?
Так, например, в следующем коде я хотел n
бы быть любым из совпадений or , 1
, 2
или 3
.
fn main() {
match 2 {
n @ 1 | 2 | 3 => {
println!("{}", n);
}
_ => {},
}
}
Он жалуется на:
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
Ответ №1:
Просто окружение or
соответствия ()
(скобками) делает привязку правильной:
fn main() {
match 2 {
n @ (1 | 2 | 3) => {
println!("{}", n);
}
_ => {},
}
}