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