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