_ joker karakteri
- Rust kursu
- Başlangıç
- Ders 87/115
- 4 dk
_ 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
fn main() {
// buraya yaz
}Örnek çözüm
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 => .., 6 | 7 => .. }</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
match g {
1..=5 => "hafta içi",
6 | 7 => "hafta sonu",
____ => "geçersiz",
}
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 |