Middle
Dasturlashda Generics qanday imkoniyatlar taqdim etadi?
sobes.tech AI
AIdan javob
Generyklar quyidagi imkoniyatlarni taqdim etadi:
- Turlar xavfsizligini oshirish: Kod bajarilish vaqtida turdagi mos kelmaslik bilan bog‘liq xatoliklarga qarshi yanada chidamli bo‘ladi. Kompilyator turlarni faqat bajarilish vaqtida emas, balki kompilatsiya vaqtida tekshiradi.
- Kodni qayta ishlatish: Turli ma'lumot turlari bilan ishlaydigan universal ma'lumotlar tuzilmalari, sinflar va metodlar yaratish mumkin, bu kodni takrorlash shart emas.
- Ishlash samaradorligini oshirish: Ba'zi tillarda, generyklardan foydalanish, turlarni qo‘lda o‘zgartirish yoki asosiy sinf
Objectbilan ishlashga nisbatan, yanada samarali kodga olib kelishi mumkin, chunki primitiv turlarni paketlash va chiqarib olish ehtiyoji yo‘q. - Yaxshiroq va o‘qilishi oson API: Kutubxonalar va sinflar interfeyslari yanada intuitiv bo‘lib, ular qanday turlar bilan ishlashini ko‘rsatadi.
Java misoli:
// ArrayList generyik sinfidan foydalanish misoli
List<String> ismlar = new ArrayList<>();
ismlar.add("Alice");
// ismlar.add(123); // Kompilatsiya xatosi - tur xavfsizligi
String ism = ismlar.get(0); // Turlarni o‘zgartirishga ehtiyoj yo‘q
C# misoli:
// Generyik metoddan foydalanish misoli
public T BirinchiElementniOlish<T>(List<T> ro‘yxat)
{
if (ro‘yxat != null && ro‘yxat.Count > 0)
{
return ro‘yxat[0];
}
return default(T); // T uchun standart qiymatni qaytaradi
}
List<int> sonlar = new List<int>() { 1, 2, 3 };
int birinchiSon = BirinchiElementniOlish(sonlar); // int bilan ishlaydi
List<string> ranglar = new List<string>() { "qizil", "yashil" };
string birinchiRang = BirinchiElementniOlish(ranglar); // string bilan ishlaydi