CodeBlanks Logo Icon CodeBlanks

_ joker karakteri

_ ile kalan tüm durumları tek kolda yakalarsın.

_ joker karakteri

match kapsayıcı (exhaustive) olmalıdır: olası her değer bir kola uymalı. Tamsayılar gibi çok değerli türlerde kalanları _ toplar. _ değeri bağlamaz; bağlamak istersen bir ad kullan (diger => ..):

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

Parçaları yok saymak

_ kalıbın içinde de kullanılır: (_, y) ilk elemanı, Some(_) içeriği yok sayar. .. ise birden çok parçayı atlar:

let sayilar = (2, 4, 8, 16, 32);
let (ilk, .., son) = sayilar;
println!("{ilk} {son}");   // 2 32

let _kullanilmayan = 5;   // _ ile başlayan ad uyarı vermez

_x değeri bağlar ama "kullanılmayan değişken" uyarısını kapatır; tek başına _ ise hiç bağlamaz.

Uygulama Gün türü

Yukarıdaki fn gun_turu(g: u8) -> &'static str fonksiyonunu yaz. 3, 7 ve 9 için sonuçları | ile ayırarak tek satırda 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 => "hafta içi",
        6 | 7 => "hafta sonu",
        _ => "geçersiz",
    }
}

fn main() {
    println!("{}|{}|{}", gun_turu(3), gun_turu(7), gun_turu(9));
}

Beklenen çıktı

hafta içi|hafta sonu|geçersiz

Soru ve cevaplar

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

1 <code>match g { 1..=5 =&gt; .., 6 | 7 =&gt; .. }</code> (g: u8) neden derlenmez?

  • Derlenir
  • 0 ve 8..=255 değerleri karşılanmıyor Doğru cevap
  • | kullanılamaz
  • Aralık yanlış

Açıklama: Derleyici eksik değerleri listeler: "patterns `0_u8` and `8_u8..=u8::MAX` not covered".

2 Kalanları topla

Soru
match g {
    1..=5 => "hafta içi",
    6 | 7 => "hafta sonu",
    ____ => "geçersiz",
}
Cevap
match g {
    1..=5 => "hafta içi",
    6 | 7 => "hafta sonu",
    _ => "geçersiz",
}

Açıklama: _ önceki kollara uymayan tüm değerleri yakalar.

3 Kalıp ve etkisi

Kavram Anlamı
_ Her şeye uyar, bağlamaz
_x Bağlar, uyarı vermez
(ilk, .., son) Ortayı atlar
Some(_) İçeriği yok sayar

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