Junior
Dasturlashda generiklar nima?
sobes.tech AI
AIdan javob
Generyklar (Generics) — bu har qanday ma'lumot turlari bilan ishlaydigan va tur xavfsizligini saqlab qoladigan moslashuvchan, qayta ishlatiladigan kod yozish usuli. Ular aniq bir turni ishlatish vaqtini kechiktirish imkonini beradi.
Asosiy afzalliklari:
- Kod takrorlanishini oldini olish: Turli turlarda ishlaydigan algoritm/strukturani yozish mumkin.
- Tur xavfsizligi: Kompilyator tur mosligini kompilyatsiya vaqtida tekshiradi va noto'g'ri turlar bilan bog'liq ish vaqtidagi xatoliklarni oldini oladi.
- Ko'proq ifodali kod: Dasturchining ma'lumot turlari bo'yicha niyatlarini aniqroq ko'rsatadi.
Swiftda foydalanish misoli:
Umumiy Stack tuzilmasi:
struct Stack<Element> {
// Element, massiv elementlari sifatida ishlatiladi
private var items: [Element] = []
// Parametr sifatida Element ishlatiladi
mutating func push(_ item: Element) {
items.append(item)
}
// Qaytish qiymati sifatida Element ishlatiladi
mutating func pop() -> Element {
return items.removeLast()
}
}
Satrlarga ishlatish:
var stringStack = Stack<String>()
stringStack.push("hello")
stringStack.push("world")
let lastString = stringStack.pop() // lastString String turida
Raqamlarga ishlatish:
var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let lastInt = intStack.pop() // lastInt Int turida
Generyklar bo'lmasa, Stack<String>, Stack<Int> uchun alohida tuzilmalar yozish yoki kamroq xavfsiz yondashuvlardan foydalanish (masalan, Any) kerak bo'lardi.