while let Deyimleri

if let’te olduğu gibi, bir değeri tekrar tekrar bir desene göre test eden bir while let çeşidi vardır:

fn main() {
    let mut name = String::from("Comprehensive Rust 🦀");
    while let Some(c) = name.pop() {
        dbg!(c);
    }
    // (Bir dizeyi tersine çevirmenin daha verimli yolları var!)
}

Burada String::pop dize boşalana kadar Some(c) geri döndürür, ardından None geri döndürür. while let tüm öğeler arasında adımlamaya (iterating) devam etmemizi sağlar.

  • while let döngüsünün, değer desenle eşleştiği sürece devam edeceğine dikkat çekin.
  • while let döngüsünü, name.pop() için açılacak bir değer olmadığında kesintiye uğrayan bir if ifadesiyle sonsuz bir döngü olarak yeniden yazabilirsiniz. while let yukarıdaki senaryo için sözdizimsel kolaylık sağlar.
  • Bu form bir ifade (expression) olarak kullanılamaz, çünkü koşul yanlışsa hiçbir değeri olmayabilir.