Rust編程中可能會遇到像下面這樣的代碼塊
let x = Some(5);
match x {
Some(_) => {do_something();},
None => {}
}
可以看到None對應的分支沒有任何動作,代碼看起來不夠緊湊優雅,我們可以使用if-let語句進行改寫:
let x = Some(5);
if let Some(_) = x {
do_something()
}
這樣寫出來代碼看起來會緊湊很多,不必使用match語句。if-let 語句的范式為:
if let pattern = expression {
do_something()
} else {
other()
}
while-let語句也遵循同樣的范式:
while let pattern = expression {
do_something()
}