Sobes.tech
Middle

Generiklər nədir və proqramlaşdırmada necə istifadə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

Generiklər (generics) — müxtəlif məlumat növləri ilə işləyə bilən və tiplərin təhlükəsizliyini təmin edən kod yazma imkanını verir. Onlar sinflər, interfeyslər və metodlar yaradırlar ki, burada məlumat tipi istifadə zamanı müəyyən edilir, elan zamanı deyil.

Generiklərin istifadəsi aşağıdakıları təmin edir:

  • Tip təhlükəsizliyi: Kompilyator tiplərin uyğunluğunu yoxlayır, bu da işləmə zamanı tiplər arasında uyğunsuzluq xətalarını qarşısını alır.
  • Kodun təkrar istifadəsi: Eyni kod müxtəlif məlumat tipləri ilə işləyə bilər, loqikanı təkrarlamadan.
  • Kodun oxunaqlılığı: Ümumi Object yerinə xüsusi tiplərin istifadəsi kodun aydınlığını artırır.
  • Performans: Bəzi dillərdə (məsələn, Java) generiklər tiplərin silinməsi (type erasure) ilə həyata keçirilir, digər dillərdə (məsələn, C#, C++) isə tiplə bağlı məlumat işləmə zamanı saxlanılır.

İstifadə nümunələri:

  • Kolleksiyalar: Hər hansı tiplərdə elementləri saxlaya bilən ümumi siyahılar, toplamalar və xəritələr yaratmaq.
    // String siyahısı yaratmaq
    List<String> stringList = new ArrayList<>();
    stringList.add("salam");
    // Əgər rəqəm əlavə etməyə çalışsanız, tərtib zamanı xəta
    // stringList.add(123);
    
  • Fabrikalar: Müxtəlif tiplərdə obyektlər yaradan fabrikalar yaratmaq.
  • Metodlar: Ümumi məlumat tipləri ilə işləyən metodlar yazmaq.
    // Dəyərləri dəyişdirmək üçün ümumi metod
    public static void Swap<T>(ref T a, ref T b)
    {
        T temp = a;
        a = b;
        b = temp;
    }
    
  • Siniflər: Saxlanan və ya işlənən məlumat tiplərinə ümumi siniflər yaratmaq.
    // Ümumi Box sinifi
    class Box<T> {
        private T content;
    
        public void setContent(T content) {
            this.content = content;
        }
    
        public T getContent() {
            return content;
        }
    }
    

Object tipindən istifadə ilə müqayisə (Java):

Xüsusiyyət Generics Object tipi
Tip təhlükəsizliyi Kompilyasiya zamanı İş zamanı (cast vasitəsilə)
Cast tələb olunur Yox Bəli
Xətalar Kompilyasiya mərhələsində aşkarlanır İş zamanı baş verə bilər (ClassCastException)
Oxunaqlıq Yüksək Aşağı (hansı tiplərin gözlənildiyi aydın deyil)

Ümumiyyətlə, generics daha etibarlı, oxumaq asan və təkrar istifadə edilə bilən kod yazmağa imkan verən güclü vasitədir.