Dart Tipler | Generics— Jenerikler #9

MÜŞERREF SELÇUK ÖZDEMIR
3 min readJan 3, 2024

Temel dizi türü olan List için dikkat edersiniz, türün aslında List<E> olduğunu görürsünüz. <…> notasyonu List’i jenerik (veya parametrelendirilmiş) bir tür olarak işaretler — resmi tür parametreleri olan bir tür. Geleneksel olarak, çoğu tür değişkeninin E, T, S, K ve V gibi tek harfli adları vardır.

Neden jenerik kullanmalı?

Jenerikler genellikle tip güvenliği için gereklidir, ancak kodunuzun çalışmasına izin vermekten daha fazla faydaları vardır:

  • Genel tiplerin doğru şekilde belirtilmesi daha iyi kod üretilmesini sağlar.
  • Kod tekrarını azaltmak için jenerikleri kullanabilirsiniz.

Bir listenin yalnızca string içermesini istiyorsanız, listeyi List<String> olarak bildirebilirsiniz (bunu “string listesi” olarak okuyun). Bu şekilde siz, programcı arkadaşlarınız ve araçlarınız, listeye string olmayan bir atamanın muhtemelen bir hata olduğunu tespit edebilir. İşte bir örnek:

### XXXX statik analiz: hata/uyarı

var names = <String>[];
names.addAll(['Seth', 'Kathy', 'Lars']);
names.add(42); // Hata

Jeneriklerin kullanılmasının bir başka nedeni de kod tekrarını azaltmaktır. Jenerikler, statik analizden yararlanmaya devam ederken birçok tür arasında tek bir arayüzü ve uygulamayı paylaşmanıza olanak tanır. Örneğin, bir nesneyi önbelleğe almak için bir arayüz oluşturduğunuzu varsayalım:

abstract class ObjectCache {
Object getByKey(String key);
void…

--

--