match kalıpları
- Rust kursu
- Başlangıç
- Ders 83/115
- 4 dk
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
fn main() {
// buraya yaz
}Örnek çözüm
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>_ => 'F', 90..=100 => '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ı
match p {
90____100 => 'A',
_ => 'F',
}
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 |