6
Bạn có thể sử dụng if let
để mô hình phù hợp trên một khoảng:Nhiều mô hình không làm việc với nếu chúng ta hãy
let n=1
if let 1...3 = n { println!("found in range") }
nhưng tôi không thể làm cho nó hoạt trên nhiều mô hình:
// this does not compile
if let 1 | 2 | 3 = n { println!("found in pattern") }
// -^ unexpected token
Tôi nghĩ thứ hai if let
desugared to:
// this does compile and work
match n {
1 | 2 | 3 => println!("found in pattern"),
_ => {}
}
vì vậy những gì cung cấp? Tôi có sử dụng sai cú pháp không? Tôi có kỳ vọng rằng nhiều mô hình nên hoạt động sai lầm? Đây có phải là không thực hiện?
https://github.com/rust-lang/rfcs/issues/935 – interjay
@interjay ah cảm ơn, vì vậy nó không được triển khai. Vấn đề github không đề cập đến nhiều mẫu nhưng sau đó cuộc thảo luận tập trung vào các vệ sĩ. Đối với một số lý do (cú pháp kết quả xấu xí?) Tôi đã ít ngạc nhiên rằng các vệ sĩ không làm việc với nếu cho phép. Phạm vi làm việc so với nhiều mẫu không hoạt động có vẻ ít trực quan hơn đối với tôi ... –