Pattern matching
- Dart kursu
- Orta seviye
- Ders 73/116
- 5 dk
Dart 3 pattern matching ve destructure öğrenirsin.
Pattern matching ile destructure
Pattern matching, bir değeri parçalarına ayırır. En basit hâliyle bir record'u destructure etmek: var (a, b) = (1, 2);. Artık a 1, b 2 olur.
Aynı sözdizimi bir listeyi de ayırır: var [first, ...rest] = [10, 20, 30];. Burada first 10, rest [20, 30] olur.
Map için var {'ad': ad} = {'ad': 'Dart'}; yazabilirsin. Desen, değerin yapısını betimler; Dart eşleştirirse değişkenleri bağlar.
Liste desenleri
Bir liste deseni, listenin başını ve kuyruğu ayırır. var [first, ...rest] = [10, 20, 30]; örneğinde first liste başını, rest kalanını alır.
Sabit uzunluklu desen de mümkün: var [x, y] = [5, 9];. Burada liste tam iki elemanlı olmalıdır.
Desen uyuşmazsa Dart bir hata fırlatır. Bu yüzden desenleri, yapısı bilinen verilerde kullanırsın.
Uygulama Record destructure
main içinde var (a, b) = (3, 4); ile bir record'u destructure et. a ve b'nin toplamını print ile yazdır.
Başlangıç kodu
void main() {
// (3, 4) kaydını destructure et, toplamı yazdır
}Örnek çözüm
void main() {
var (a, b) = (3, 4);
print(a + b);
}Beklenen çıktı
7
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 var (a, b) = (1, 2); sonucu ne?
- a = 1, b = 2 Doğru cevap
- a = 2, b = 1
- Derleme hatası
- a = (1,2), b = boş
Açıklama: Desen soldan sağa eşleştirir.
2 Liste başı deseni
var [first, ____] = [10, 20, 30];
var [first, ...rest] = [10, 20, 30];
Açıklama: ...rest kalan tüm elemanları yakalar.
3 Desen eşleştirmesi
| Kavram | Anlamı |
|---|---|
var (a, b) = (1, 2); |
Record deseni |
var [x, ...rest] = list; |
Liste deseni |
var {'ad': ad} = m; |
Map deseni |