while let 迴圈

if let 的情況一樣,有一個 while let 變數可針對模式重複測試值:

fn main() {
    let v = vec![10, 20, 30];
    let mut iter = v.into_iter();

    while let Some(x) = iter.next() {
        println!("x: {x}");
    }
}

Here the iterator returned by v.into_iter() will return a Option<i32> on every call to next(). It returns Some(x) until it is done, after which it will return None. The while let lets us keep iterating through all items.

如要進一步瞭解 Rust 中的模式,請參閱「模式比對」。

  • 請指出只要值符合模式,while let 迴圈就會持續運作。
  • 您可以將 while let 迴圈重寫為無限迴圈,並加上會在無法為 iter.next() 取消包裝值的情況下結束的 if 陳述式。while let 可為上述情況提供語法糖。