CodeBlanks Logo Icon CodeBlanks

Records ve patterns

Records ve patterns tasarımını öğrenirsin.

Records

Records, Dart 3 ile gelen lightweight veri gruplama özelliğidir. (int, String) bir tamsayı ve bir metni birlikte tutar. final pair = (42, 'Merhaba'); tanımı ile iki değeri tek bir değişkende saklayabilirsin.

Alanlara .$1 ve .$2 ile erişilir: pair.$1 42 verir. Named field da mümkündür: ({int x, int y}). Records struct benzeri ama kalıtımsızdır ve değer tabanlıdır.

Patterns

Patterns, Dart 3 ile gelen ve record, liste, harita gibi yapıları çözümleyen (deconstruct) sözdizimidir. switch ifadesinde pattern eşleştirme yapılır: switch (pair) { case (int x, String y): print('$x $y'); }.

Patternler değerleri ayıklar ve eşleşme sağlar. Destructuring, variable binding ve guards (when) ile güçlü akış denetimi mümkün olur. Patterns, kodu daha bildirimsel (declarative) hale getirir.

Uygulama Record ile switch pattern

Bir String describePoint(int x, int y) fonksiyonu tanımla: gövdesinde return switch ((x, y)) { (0, 0) => 'Başlangıç', (int a, int b) => '$a,$b' }; switch ifadesi kullansın. main içinde print(describePoint(0, 0)); ve print(describePoint(3, 4)); çağrılarını ekle.

Başlangıç kodu

main.dart
void main() {
  // describePoint fonksiyonunu tanımla (switch + record pattern)
  // iki nokta için çağrıları yazdır
}

Örnek çözüm

main.dart
String describePoint(int x, int y) {
  return switch ((x, y)) {
    (0, 0) => 'Başlangıç',
    (int a, int b) => '$a,$b',
  };
}

void main() {
  print(describePoint(0, 0));
  print(describePoint(3, 4));
}

Beklenen çıktı

Başlangıç
3,4

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Record erişimi

Soru
final pair = (42, 'Merhaba');
print(pair.____);
Cevap
final pair = (42, 'Merhaba');
print(pair.$1);

Açıklama: pair.$1 ilk alanı (42) verir.

2 Patterns parçalarını eşleştir

Kavram Anlamı
(int, String) Record türü
case (int x, String y) Pattern eşleşme
$1 İlk alan erişimi
switch Akış ifadesi

3 Records hangi durumda kullanışlıdır?

  • Tek bir değeri saklamak için
  • Birden çok değeri lightweight olarak gruplamak için Doğru cevap
  • Sınıf yerine kalıtım için
  • Asenkron işlem sonuçlarını saklamak için

Açıklama: records birden çok değeri lightweight ve kalıtımsız gruplar.

Uzman bölümündeki tüm dersler