while let

if let と同様に、 while let というバリアントがあり、値をパターンに対して繰り返しテストします。

// Copyright 2025 Google LLC
// SPDX-License-Identifier: Apache-2.0

fn main() {
    let mut name = String::from("Comprehensive Rust 🦀");
    while let Some(c) = name.pop() {
        dbg!(c);
    }
    // (文字列を逆順にするもっと効率的な方法はあります!)
}

ここで String::pop は、文字列が空になるまでは Some(c) を返し、その後は None を返します。 while let を使うことで、すべての要素に対して反復を続けられます。

  • while let ループは、値がパターンに一致している限り継続することを指摘してください。
  • while let ループは、name.pop() からアンラップする値がなくなったときに break する if 文を使った無限ループとして書き換えることもできます。while let は、このような場面のためのシンタックスシュガーを提供します。
  • この形式は、条件が偽の場合に値を持たない可能性があるため、式としては使用できません。