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
可為上述情況提供語法糖。