Sobes.tech
Middle

Generics nədir və onlar nə üçün istifadə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

Generiklər (generics) proqramlaşdırma dillərində, müəyyən bir məlumat növünü əvvəlcədən bilmədən müxtəlif məlumat tipləri ilə işləyən siniflər, interfeyslər və metodlar yaratmağa imkan verən mexanizmdir.

Onlar aşağıdakı məqsədlər üçün istifadə olunur:

  1. Növ təhlükəsizliyinin artırılması (Type Safety): Kompilyator məlumat tiplərini tərtib zamanı yoxlayır və yalnız işə salınma zamanı (Runtime Errors) ortaya çıxan səhvlərin qarşısını alır.

    // Generiksiz nümunə - potensial səhv
    List list = new ArrayList();
    list.add("string");
    list.add(123); // Hər hansı bir növ əlavə edə bilər
    String s = (String) list.get(1); // İşə salınma zamanı ClassCastException xətası
    
  2. Kodun təkrar istifadəsi (Code Reusability): Eyni kod müxtəlif məlumat tipləri ilə işləyə bilər, hər növ üçün ayrıca versiyalar yazmağa ehtiyac olmadan.

    // Generiklərlə - təhlükəsiz istifadə
    List<String> list = new ArrayList<>(); // String növü göstərilib
    list.add("string");
    // list.add(123); // Kompilyator səhv verəcək - int əlavə edilə bilməz
    String s = list.get(0); // Növ çevirməyə ehtiyac yoxdur
    
  3. Kodun oxunaqlığının yaxşılaşdırılması: Məlumat tiplərinin açıq göstərilməsi kodun hansı məlumatlarla işlədiyini anlamağa kömək edir.

  4. Performansın optimallaşdırılması: Bəzi dillərdə (məsələn, C#), generiklər bazar tiplərdən (məsələn, Object) istifadə etməklə müqayisədə daha yaxşı performans təmin edə bilər, çünki boxing/unboxing lazım deyil.

Məsələn, standart məlumat kolleksiyaları (siyahılar, dəstlər, xəritələr) əksər dillərdə generiklərdən istifadə edir, bu da təhlükəsizlik və rahatlıq təmin edir.

Generiksiz Generiklərlə
Object tipləri ilə işləyir Konkret tiplərlə işləyir
Növ çevirmə tələb edir Növ çevirməyə ehtiyac yoxdur
Növ səhvləri iş vaxtında aşkarlanır Növ səhvləri tərtib vaxtında aşkarlanır
Kod daha az oxunaqlıdır Kod daha oxunaqlıdır