如果讓我們放手
if let
結合模式 match
和 if
語句,允許執行簡短的非窮舉匹配。
if let Some(x) = option {
do_something(x);
}
這相當於:
match option {
Some(x) => do_something(x),
_ => {},
}
這些塊也可以有 else
語句。
if let Some(x) = option {
do_something(x);
} else {
panic!("option was None");
}
該塊相當於:
match option {
Some(x) => do_something(x),
None => panic!("option was None"),
}
while let
結合模式匹配和 while 迴圈。
let mut cs = "Hello, world!".chars();
while let Some(x) = cs.next() {
print("{}+", x);
}
println!("");
這列印 H+e+l+l+o+,+ +w+o+r+l+d+!+
。
它相當於使用 loop {}
和 match
語句:
let mut cs = "Hello, world!".chars();
loop {
match cs.next() {
Some(x) => print("{}+", x),
_ => break,
}
}
println!("");