Junior
Ce sunt genericele în programare?
sobes.tech AI
Răspuns de la AI
Generics (Generics) reprezintă o modalitate de a scrie cod flexibil și reutilizabil care funcționează cu orice tip de date, păstrând în același timp siguranța tipurilor. Ele permit amânarea specificării unui tip concret până în momentul utilizării.
Principalele avantaje:
- Evitarea duplicării codului: Se poate scrie un algoritm/structură de date care funcționează cu diferite tipuri.
- Siguranța tipurilor: Compilatorul verifică compatibilitatea tipurilor în timpul compilării, prevenind erorile de execuție legate de tipuri greșite.
- Cod mai expresiv: Arată mai clar intențiile dezvoltatorului referitoare la tipurile de date.
Exemplu de utilizare în Swift:
Structură generică Stack:
struct Stack<Element> {
// Element generic folosit ca tip al elementelor array-ului
private var items: [Element] = []
// Element generic folosit ca tip al parametrului
mutating func push(_ item: Element) {
items.append(item)
}
// Element generic folosit ca tip al valorii returnate
mutating func pop() -> Element {
return items.removeLast()
}
}
Utilizare cu șiruri de caractere:
var stringStack = Stack<String>()
stringStack.push("hello")
stringStack.push("world")
let lastString = stringStack.pop() // lastString are tip String
Utilizare cu numere:
var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let lastInt = intStack.pop() // lastInt are tip Int
Fără generice, ar fi fost nevoie să scrii structuri separate pentru Stack<String>, Stack<Int>, etc., sau să folosești abordări mai puțin sigure (de exemplu, Any).