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
Objectyerinə 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.