Pattern matching
- Dart kursu
- Başlangıç
- Ders 39/116
- 5 dk
Dart 3 switch ifadeleri ve pattern matching'i öğrenirsin.
Pattern matching
Dart 3 ile gelen switch expression, switch'in bir ifade (değer üreten) halidir. Sonuç bir değişkene atanabilir: var name = switch (day) { "Mon" => "Pazartesi", _ => "Bilinmiyor" };.
İki önemli fark: (1) case ve iki nokta yerine => oku kullanılır; (2) break gerekmez çünkü her dal otomatik biter. _ alt çizgi, "diğer her şey" anlamına gelen wildcard desenidir; default'un yerine geçer.
Wildcard desen _
Switch expression'da _ alt çizgi, "diğer tüm değerler" anlamına gelen wildcard desenidir. default'un yerine geçer ve genelde en sona yazılır. Switch expression'da _ dalı zorunludur; aksi halde bazı değerler için sonuç üretilemez ve derleme hatası alınır.
Örnek: var t = switch (n) { 1 => "tek", 2 => "çift", _ => "diğer" };. Burada n 1 ya da 2 değilse _ dalı çalışır ve "diğer" döner.
Uygulama switch expression ile gün türü
String türünde day değişkeni tanımla ve değeri "Fri" olsun. desc adında bir değişken tanımla ve switch (day) ifadesine ata: "Fri" => "Hafta sonu yakını" ve _ => "Orta hafta" dallarını kullan. Sonra print(desc); ile yazdır. Çıktı tek satırda Hafta sonu yakını olmalı.
Başlangıç kodu
// day değişkenini tanımla, switch expression ile desc'i ata ve yazdırÖrnek çözüm
String day = "Fri";
var desc = switch (day) {
"Fri" => "Hafta sonu yakını",
_ => "Orta hafta",
};
print(desc);Beklenen çıktı
Hafta sonu yakını
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 switch expression'da dallar hangi işaretle ayrılır?
var x = switch (n) {
1 => "bir",
_ => "diğer",
};- case ... :
- => Doğru cevap
- :
- ->
Açıklama: switch expression'da her dal => oku ile değer üretir.
2 Parçayı işlevine eşle
| Kavram | Anlamı |
|---|---|
switch (x) { |
Denetlenecek değer |
=> |
Sonuç oku |
_ |
Wildcard (diğer) |
var y = switch |
Sonucu değişkene ata |
3 switch expression satırını yaz
String day = "Fri";
var desc = switch (day) {
____
_ => "Orta hafta",
};
print(desc);
String day = "Fri";
var desc = switch (day) {
"Fri" => "Hafta sonu yakını",
_ => "Orta hafta",
};
print(desc);
Açıklama: => oku ile değer üretilir; satır sonu virgülle kapanır.