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).