Junior
Co jsou generika v programování?
sobes.tech AI
Odpověď od AI
Generika (Generics) je způsob, jak psát flexibilní a znovu použitelný kód, který funguje s jakýmkoli typem dat a zároveň zachovává typovou bezpečnost. Umožňuje odložit specifikaci konkrétního typu až do okamžiku použití.
Hlavní výhody:
- Vyhýbání se duplicitě kódu: Můžete napsat algoritmus/strukturu dat, která funguje s různými typy.
- Typová bezpečnost: Kompilátor kontroluje kompatibilitu typů během kompilace, čímž předchází chybám za běhu spojeným s nesprávnými typy.
- Výraznější kód: Jasně ukazuje záměry vývojáře ohledně typů dat.
Příklad použití ve Swift:
Obecná struktura Stack:
struct Stack<Element> {
// generický Element se používá jako typ prvků pole
private var items: [Element] = []
// generický Element se používá jako typ parametru
mutating func push(_ item: Element) {
items.append(item)
}
// generický Element se používá jako typ návratové hodnoty
mutating func pop() -> Element {
return items.removeLast()
}
}
Použití s řetězci:
var stringStack = Stack<String>()
stringStack.push("hello")
stringStack.push("world")
let lastString = stringStack.pop() // lastString má typ String
Použití s čísly:
var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let lastInt = intStack.pop() // lastInt má typ Int
Bez generik by bylo nutné psát samostatné struktury pro Stack<String>, Stack<Int> atd., nebo používat méně bezpečné přístupy (například Any).