match temelleri
- Rust kursu
- Başlangıç
- Ders 37/115
- 4 dk
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
fn main() {
// buraya yaz
}Örnek çözüm
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
match gun {
6 ____ 7 => "hafta sonu",
_ => "iş günü",
}
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 |