CodeBlanks Logo Icon CodeBlanks

match temelleri

match ile bir değeri kalıplara göre eşleştirirsin.

match temelleri

match bir değeri sırayla kalıplarla karşılaştırır ve ilk eşleşen kolu çalıştırır. Kollar kalıp => ifade biçimindedir; kalıplar sabit, aralık (1..=5), birden çok değer (1 | 2) ya da _ olabilir:

let gun = 6;
let tur = match gun {
    1..=5 => "iş günü",
    6 | 7 => "hafta sonu",
    _ => "geçersiz",
};
println!("{tur}");

match kapsamlı olmalıdır: tüm olası değerler bir kolla karşılanmalıdır.

Kol gövdeleri

Bir kol birden çok satır çalıştıracaksa süslü parantez kullanılır; son ifadesi kolun değeridir:

match komut {
    "ekle" => {
        sayac += 1;
        println!("eklendi");
    }
    "sil" => sayac -= 1,
    _ => println!("bilinmeyen: {komut}"),
}

Kolların sırası önemlidir: _ en sona yazılır, yoksa sonraki kollara hiç ulaşılmaz ve derleyici uyarı verir.

Uygulama Gün türü

fn gun_turu(g: u8) -> &'static str yaz: 1–5 "iş günü", 6 ve 7 "hafta sonu", diğerleri "geçersiz". 3, 7 ve 9 için sonuçları ayrı satırlarda yazdır.

Başlangıç kodu

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

Örnek çözüm

main.rs
fn gun_turu(g: u8) -> &'static str {
    match g {
        1..=5 => "iş günü",
        6 | 7 => "hafta sonu",
        _ => "geçersiz",
    }
}

fn main() {
    for g in [3, 7, 9] {
        println!("{}", gun_turu(g));
    }
}

Beklenen çıktı

iş günü
hafta sonu
geçersiz

Soru ve cevaplar

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

1 <code>match</code> neden switch'ten daha güvenlidir?

  • Derleyici tüm durumların ele alındığını denetler Doğru cevap
  • Daha hızlıdır
  • Break gerektirir
  • Yalnızca sayılarla çalışır

Açıklama: Eksik bir durum derleme hatasıdır; ayrıca kollar alta düşmez (fall-through yok).

2 Birden çok değer

Soru
match gun {
    6 ____ 7 => "hafta sonu",
    _ => "iş günü",
}
Cevap
match gun {
    6 | 7 => "hafta sonu",
    _ => "iş günü",
}

Açıklama: | tek kolda birden çok kalıbı birleştirir.

3 Kalıp ve anlamı

Kavram Anlamı
3 Tek değer
1..=5 Kapalı aralık
6 | 7 Birden çok değer
_ Geri kalan her şey

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