Middle
Generiklar nima va ular dasturlashda qanday ishlatiladi?
sobes.tech AI
AIdan javob
Generics (umumiy turlar) — bu kod yozish imkoniyatidir, u turli ma'lumot turlari bilan ishlay oladi, vaqti bilan tur xavfsizligini ta'minlaydi. Ular sinflar, interfeyslar va metodlarni yaratishga imkon beradi, ularning ma'lumot turi ularni ishlatish vaqtida aniqlanadi, e'lon qilish vaqtida emas.
Genericsdan foydalanish quyidagilarni ta'minlaydi:
- Tur xavfsizligi: Kompilyator turlar mosligini tekshiradi, bu esa ish vaqtida turlar mos kelmaslik xatolarini oldini oladi.
- Kodni qayta ishlatish: Bir xil kod turli ma'lumot turlari bilan ishlash uchun ishlatilishi mumkin, logikani takrorlamasdan.
- Kod o'qilishi: Umumiy
Objecto'rniga aniq turlarni ishlatish kodning tushunarli bo'lishini oshiradi. - Performans: Ba'zi tillarda (masalan, Java) generics turlarni yo'q qilish (type erasure) bilan amalga oshiriladi, boshqalarda (masalan, C#, C++) esa turlar haqida ma'lumot ish vaqtida saqlanadi.
Foydalanish misollari:
- Kolleksiyalar: Har qanday turdagi elementlarni saqlay oladigan umumiy ro'yxatlar, to'plamlar va xaritalar yaratish.
// String ro'yxatini yaratish List<String> stringList = new ArrayList<>(); stringList.add("salom"); // Agar raqam qo'shishga harakat qilsangiz, kompilyatsiya xatosi // stringList.add(123); - Fabrikalar: Turli turlardagi obyektlarni ishlab chiqaradigan fabrikalar yaratish.
- Metodlar: Umumiy ma'lumot turlari bilan ishlaydigan metodlar yozish.
// Qiymatlarni almashtirish uchun umumiy metod public static void Swap<T>(ref T a, ref T b) { T temp = a; a = b; b = temp; } - Klasslar: Saqlanadigan yoki ishlov beriladigan ma'lumot turlariga umumiy bo'lgan klasslar yaratish.
// Umumiy Box klassi class Box<T> { private T content; public void setContent(T content) { this.content = content; } public T getContent() { return content; } }
Object tipidan foydalanish bilan taqqoslash (Java):
| Xususiyat | Generics | Object tipi |
|---|---|---|
| Tur xavfsizligi | Kompilyatsiya vaqtida | Ish vaqtida (cast orqali) |
| Cast qilish zarurati | Yo'q | Ha |
| Xatolar | Kompilyatsiya bosqichida aniqlanadi | Ish vaqtida yuzaga kelishi mumkin (ClassCastException) |
| O'qilishi | Yuqori | Pastroq (qaysi turlar kutilayotganligi aniq emas) |
Umuman olganda, generics ishonchli, o'qilishi oson va qayta ishlatish uchun qulay kod yozishga imkon beradigan kuchli vositadir.