CodeBlanks Logo Icon CodeBlanks

Type alias

Dart 3 type alias'ı öğrenirsin.

Type alias ile karmaşık türler

Dart 3 ile typedef yalnız fonksiyon türleri için değil, her tür için kullanılabilir. Buna type alias denir. Örneğin typedef JsonMap = Map<String, dynamic>; satırı uzun bir türü kısa bir adla ifade eder.

Böylece JsonMap data = {'ad': 'Dart'}; yazabilirsin. Kod daha kısa ve anlamlı olur. Tür değiştiğinde yalnızca alias tanımını güncellersin.

type alias bir belgeleme aracıdır da: UserId adı, sıradan bir int'ten farklı bir anlam taşır.

Type alias tanımlamak

Bir type alias typedef kelimesiyle başlar. Örnek: typedef UserId = int;. Artık UserId yerine int kullanılabilir; ikisi tamamen aynıdır.

Benzer şekilde typedef StringList = List<String>; tanımı StringList adını verir. StringList names = ['Ayşe', 'Ali']; yazabilirsin.

Alias yalnızca adlandırma yapar; derleyici her iki adı da aynı tür olarak görür. Bu yüzden UserId ile int arasında dönüşüm gerekmez.

Uygulama UserId alias'ı

typedef UserId = int; tanımla. typedef StringList = List<String>; tanımla. main içinde bir UserId değişkenine 42 değerini ata ve bir StringList'e ['Ayşe', 'Ali'] listesini koy; ikisini de ayrı satırlarda print ile yazdır.

Başlangıç kodu

main.dart
// UserId alias'ını tanımla (int)
// StringList alias'ını tanımla (List<String>)

void main() {
  // bir UserId ve bir StringList oluştur, yazdır
}

Örnek çözüm

main.dart
typedef UserId = int;
typedef StringList = List<String>;

void main() {
  UserId id = 42;
  StringList names = ['Ayşe', 'Ali'];
  print(id);
  print(names);
}

Beklenen çıktı

42
[Ayşe, Ali]

Soru ve cevaplar

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

1 type alias neyin kısaltması olabilir?

  • Bir yorum bloğunu
  • Bir döngü gövdesini
  • Map gibi karmaşık bir türü Doğru cevap
  • Bir import deyimini

Açıklama: type alias Map gibi karmaşık türleri kısaltır.

2 StringList alias'ı

Soru
typedef StringList = List____>;
Cevap
typedef StringList = List<String>>;

Açıklama: List<String> için generic parametre <String> olur.

3 Alias eşleştirmesi

Kavram Anlamı
typedef UserId = int; Kısa ad: UserId
typedef StringList = List<String>; Kısa ad: StringList
typedef JsonMap = Map<String, dynamic>; Kısa ad: JsonMap

Orta seviye bölümündeki tüm dersler