Generics Nedir? Tip Güvenliğini Sağlayan Programlama Aracı
Generics, bir fonksiyon ya da sınıfın birden fazla veri tipiyle çalışmasını sağlayan bir programlama özelliğidir. Aynı kodu tekrar tekrar yazmak yerine, tipi esnek tutup çalışma zamanında belirlersin.
Bunu anlamanın en kolay yolu bir örnek üzerinden gitmek. Diyelim ki bir liste oluşturacaksın ve bu listeye sadece sayılar ekleyeceksin. Generics olmadan, listeye her türlü veri girebilir, sonra hata alırsın. Generics'le listeyi baştan "bu liste sadece sayı tutar" diye tanımlarsın ve derleyici (kodu çalıştırılabilir hale getiren araç) sana hatalı veri eklemeye izin vermez.
Java'da basit bir örnek:
1ArrayList<String> isimler = new ArrayList<>();2isimler.add("Ali");3isimler.add("Fatma");4// isimler.add(123); // Hata! Integer eklenemezBurada <String> generics'in tür parametresidir. Listeye sadece yazı ekleyebilirsin. Eğer generics kullanmasaydın, her çıkardığın veriyi manuel olarak dönüştürmek (casting) zorunda kalırdın ve hataya açık olurdu.
Generics'in asıl faydası üç noktada toplanır. Birincisi, tip güvenliği sağlar; yanlış tipte veri eklemeye çalışırsan hemen derleyici uyarır. İkincisi, kodun okunabilirliğini artırır; bakana ne tür veri beklediği hemen belli olur. Üçüncüsü, tekrarlayan kodu azaltır; aynı işlemi farklı tipler için yazman gerekmez.
TypeScript'te de benzer şekilde çalışır:
1function birinci<T>(dizi: T[]): T {2return dizi[0];3}45const sayi = birinci([1, 2, 3]); // T = number6const metin = birinci(["a", "b"]); // T = stringBu örnekte <T> bir placeholder gibi davranır. Fonksiyonu çağırdığında T otomatik olarak doğru tipe ayarlanır.
Generics'i iyi kullanmak, özellikle kütüphane ya da framework yazarken, kodun yeniden kullanılabilirliğini ve bakımını çok kolaylaştırır. Başlangıçta biraz soyut görünse de, bir kez alıştığında kodun güvenliğini ve netliğini önemli ölçüde artırdığını fark edersin.
0 yorum