if let İfadeleri

if let ifadesi, bir değerin bir desenle eşleşip eşleşmediğine bağlı olarak farklı kod çalıştırmanıza olanak tanır:

use std::time::Duration;

fn sleep_for(secs: f32) {
    let result = Duration::try_from_secs_f32(secs);

    if let Ok(duration) = result {
        std::thread::sleep(duration);
        println!("{duration:?} kadar uyunuldu");
    }
}

fn main() {
    sleep_for(-10.0);
    sleep_for(0.8);
}
  • match’in aksine, if let tüm dalları kapsamak zorunda değildir. Bu onu match’den daha özlü (concise) yapabilir.
  • Option ile çalışırken yaygın bir kullanım, Some değerlerini işlemektir.
  • match’in aksine, if let desen eşleştirme için filtre koşul grubu (guard clauses) desteklemez.
  • Bir else durumuyla, bu bir ifade (expression) olarak kullanılabilir.