CodeBlanks Logo Icon CodeBlanks

match kalıpları

match ile farklı kalıpları eşleştirmeyi öğrenirsin.

match kalıpları

match bir değeri kollar (arm) halinde sıralanmış kalıplarla karşılaştırır; uyan ilk kol çalışır. Kalıplar sabit değer, | ile birden çok değer ya da ..= ile aralık olabilir:

fn harf_notu(p: u8) -> char {
    match p {
        90..=100 => 'A',
        70..=89 => 'B',
        50..=69 => 'C',
        _ => 'F',
    }
}

match bir ifadedir; tüm kollar aynı türde değer üretmelidir.

Birden çok değer ve bloklar

| ile birden fazla kalıp tek kolda birleşir. Kolun gövdesi birden çok satırsa süslü parantez kullanılır; son ifade kolun değeridir:

let gun = 6;
let tur = match gun {
    1 | 2 | 3 | 4 | 5 => "iş",
    6 | 7 => {
        println!("tatil!");
        "hafta sonu"
    }
    _ => "geçersiz",
};

Uygulama Harf notu

Yukarıdaki fn harf_notu(p: u8) -> char fonksiyonunu aralık kalıplarıyla yaz. 95, 72 ve 40 için sonuçları boşlukla ayırarak yazdır.

Başlangıç kodu

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
fn harf_notu(p: u8) -> char {
    match p {
        90..=100 => 'A',
        70..=89 => 'B',
        50..=69 => 'C',
        _ => 'F',
    }
}

fn main() {
    println!("{} {} {}", harf_notu(95), harf_notu(72), harf_notu(40));
}

Beklenen çıktı

A B F

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Kollar <code>_ =&gt; 'F', 90..=100 =&gt; 'A'</code> sırasıyla yazılırsa ne olur?

  • Rastgele seçilir
  • Her değer F olur; derleyici ulaşılamaz kol uyarısı verir Doğru cevap
  • Derleme hatası
  • Sıra önemli değil

Açıklama: Kollar yukarıdan aşağı denenir; _ her şeye uyduğu için sonraki kollar hiç çalışmaz.

2 Aralık kalıbı

Soru
match p {
    90____100 => 'A',
    _ => 'F',
}
Cevap
match p {
    90..=100 => 'A',
    _ => 'F',
}

Açıklama: Kalıplarda kapsayıcı aralık ..= ile yazılır.

3 Puan ve harf_notu sonucu

Kavram Anlamı
95 A
72 B
50 C
40 F

Başlangıç bölümündeki tüm dersler

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma