与 if let
类似,while let
可以简化繁琐的 match
序列。让我们来看一个递增 i
的例子:
#![allow(unused)]
fn main() {
let mut optional = Some(0);
loop {
match optional {
Some(i) => {
if i > 9 {
println!("大于 9,退出!");
optional = None;
} else {
println!("`i` 是 `{:?}`。再试一次。", i);
optional = Some(i + 1);
}
},
_ => { break; }
}
}
}
使用 while let
可以让这个序列更加简洁:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
enum
、Option
和 RFC