Sobes.tech
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 Object o'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.