如果讓我們放手

if let

結合模式 matchif 語句,允許執行簡短的非窮舉匹配。

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!("");