Sobes.tech
Junior

პროგრამირებაში გენერიკები რა არის?

sobes.tech AI

პასუხი AI-სგან

Генериктер (Generics) — бул ийкемдүү жана кайра колдонулчу код жазуунун жолу, ал ар кандай маалымат түрлөрү менен иштейт жана түрдүн коопсуздугун сактайт. Алар конкреттүү түрдү колдонуу убактысын кечиктирүүгө мүмкүндүк берет.

Негизги артыкчылыктары:

  • Кодду кайталоодон сактануу: Ар кандай түрлөр менен иштей турган алгоритм/структураны жазса болот.
  • Типтик коопсуздук: Компилятор түрлөрдүн шайкештигин компиляция учурунда текшерет жана туура эмес түрлөргө байланыштуу иштөө учурундагы каталарды алдын алат.
  • Ачык жана түшүнүктүү код: Ал иштеп чыгуучунун маалымат түрлөрү боюнча ниеттерин так көрсөтөт.

Swiftте мисал:

Жалпы Stack структурасы:

struct Stack<Element> {
    // массивдин элементтери катары колдонулган жалпы Element
    private var items: [Element] = []

    // параметр катары колдонулган жалпы Element
    mutating func push(_ item: Element) {
        items.append(item)
    }

    // кайтаруучу мааниси катары колдонулган жалпы Element
    mutating func pop() -> Element {
        return items.removeLast()
    }
}

Стрингдер менен колдонуу:

var stringStack = Stack<String>()
stringStack.push("hello")
stringStack.push("world")
let lastString = stringStack.pop() // lastString String түрүндө

Сандар менен колдонуу:

var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let lastInt = intStack.pop() // lastInt Int түрүндө

Генериктерсиз, Stack<String>, Stack<Int> үчүн өзүнчө структураларды жазуу керек болмок, же азыраак коопсуз ыкмаларды колдонуу (мисалы, Any).