Junior
O que são genéricos em programação?
sobes.tech IA
Resposta da IA
Os genéricos (Generics) são uma forma de escrever código flexível e reutilizável que funciona com qualquer tipo de dado, mantendo a segurança de tipos. Permitem adiar a especificação de um tipo concreto até ao momento da utilização.
Vantagens principais:
- Evitar duplicação de código: Pode escrever um algoritmo/estrutura de dados que funcione com diferentes tipos.
- Segurança de tipos: O compilador verifica a compatibilidade de tipos durante a compilação, prevenindo erros em tempo de execução relacionados com tipos incorretos.
- Código mais expressivo: Mostra claramente as intenções do programador relativamente aos tipos de dados.
Exemplo de uso em Swift:
Estrutura genérica Stack:
struct Stack<Element> {
// Elemento genérico usado como tipo dos elementos do array
private var items: [Element] = []
// Elemento genérico usado como tipo do parâmetro
mutating func push(_ item: Element) {
items.append(item)
}
// Elemento genérico usado como tipo do valor de retorno
mutating func pop() -> Element {
return items.removeLast()
}
}
Uso com strings:
var stringStack = Stack<String>()
stringStack.push("hello")
stringStack.push("world")
let lastString = stringStack.pop() // lastString é do tipo String
Uso com números:
var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let lastInt = intStack.pop() // lastInt é do tipo Int
Sem genéricos, teria que escrever estruturas separadas para Stack<String>, Stack<Int>, etc., ou usar abordagens menos seguras (por exemplo, Any).