6
工作,就可以使用if let
模式匹配一個範圍:多種模式不若讓
let n=1
if let 1...3 = n { println!("found in range") }
,但我不能讓它在多模式工作:
// this does not compile
if let 1 | 2 | 3 = n { println!("found in pattern") }
// -^ unexpected token
我以爲第二個if let
desugared:
// this does compile and work
match n {
1 | 2 | 3 => println!("found in pattern"),
_ => {}
}
那麼是什麼給?我使用錯誤的語法嗎?我期望多種模式應該起作用嗎?這只是沒有實施?
https://github.com/rust-lang/rfcs/issues/935 – interjay
@interjay啊謝謝,所以它只是沒有實現。 github問題確實提到了多種模式,但是後面的討論集中在了看守方面。出於某種原因(醜陋的結果語法?)我不那麼驚訝,如果讓守衛不工作。範圍工作與多種模式不起作用似乎有點不直觀,我... –