Type alias
- Dart kursu
- Orta seviye
- Ders 71/116
- 5 dk
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
// 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
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'ı
typedef StringList = List____>;
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 |