Sobes.tech
Junior

Mi a generikus a programozásban?

sobes.tech MI

Válasz az MI-től

A generikus (Generics) egy olyan módszer, amellyel rugalmas, újrahasznosítható kódot írhatunk, amely bármilyen adattípussal működik, miközben megőrzi a típusbiztonságot. Lehetővé teszi egy konkrét típus megadásának késleltetését a használat pillanatáig.

Fő előnyei:

  • Kódduplikáció elkerülése: Egy algoritmust/struktúrát írhatunk, amely különböző típusokkal működik.
  • Típusbiztonság: A fordító ellenőrzi a típusok megfelelőségét fordítás közben, megelőzve a futási időben jelentkező hibákat, amelyek helytelen típusokból adódhatnak.
  • Kifejezőbb kód: Világosan mutatja a fejlesztő szándékait a típusokkal kapcsolatban.

Swift példában:

Általános Stack struktúra:

struct Stack<Element> {
    // generikus Element a tömb elemeinek típusaként
    private var items: [Element] = []

    // generikus Element a paraméter típusaként
    mutating func push(_ item: Element) {
        items.append(item)
    }

    // generikus Element a visszatérési érték típusaként
    mutating func pop() -> Element {
        return items.removeLast()
    }
}

Stringekkel való használat:

var stringStack = Stack<String>()
stringStack.push("hello")
stringStack.push("world")
let lastString = stringStack.pop() // lastString String típusú

Számokkal való használat:

var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let lastInt = intStack.pop() // lastInt Int típusú

Generikusok nélkül külön struktúrákat kellett volna írni Stack<String>, Stack<Int> stb. számára, vagy kevésbé biztonságos megközelítéseket alkalmazni (pl. Any).