Junior
Čo sú generiká v programovaní?
sobes.tech AI
Odpoveď od AI
Generiká (Generics) sú spôsob, ako písať flexibilný a znovu použiteľný kód, ktorý funguje s akýmkoľvek typom dát a zároveň zachováva typovú bezpečnosť. Umožňujú odložiť špecifikáciu konkrétneho typu až do momentu použitia.
Hlavné výhody:
- Vyhýbanie sa duplikácii kódu: Môžete napísať algoritmus/štruktúru dát, ktorá funguje s rôznymi typmi.
- Typová bezpečnosť: Kompilátor kontroluje kompatibilitu typov počas kompilácie, čím predchádza chybám počas behu spojeným s nesprávnymi typmi.
- Výraznejší kód: Jasnejšie ukazuje zámer vývojára týkajúci sa typov dát.
Príklad použitia v Swift:
Všeobecná štruktúra Stack:
struct Stack<Element> {
// generický Element sa používa ako typ prvkov poľa
private var items: [Element] = []
// generický Element sa používa ako typ parametra
mutating func push(_ item: Element) {
items.append(item)
}
// generický Element sa používa ako typ návratovej hodnoty
mutating func pop() -> Element {
return items.removeLast()
}
}
Použitie s reťazcami:
var stringStack = Stack<String>()
stringStack.push("hello")
stringStack.push("world")
let lastString = stringStack.pop() // lastString má typ String
Použitie s číslami:
var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let lastInt = intStack.pop() // lastInt má typ Int
Bez generík by bolo potrebné napísať samostatné štruktúry pre Stack<String>, Stack<Int>, atď., alebo použiť menej bezpečné prístupy (napríklad Any).