Sobes.tech
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.