Sobes.tech
Junior

¿Qué son los genéricos en programación?

sobes.tech AI

Respuesta de la IA

Los genéricos (Generics) son una forma de escribir código flexible y reutilizable que funciona con cualquier tipo de datos, manteniendo la seguridad de tipos. Permiten posponer la especificación de un tipo concreto hasta el momento de su uso.

Ventajas principales:

  • Evitar la duplicación de código: Se puede escribir un algoritmo/estructura de datos que funcione con diferentes tipos.
  • Seguridad de tipos: El compilador verifica la compatibilidad de tipos durante la compilación, previniendo errores en tiempo de ejecución relacionados con tipos incorrectos.
  • Código más expresivo: Muestra claramente las intenciones del desarrollador respecto a los tipos de datos.

Ejemplo de uso en Swift:

Estructura genérica Stack:

struct Stack<Element> {
    // Elemento genérico usado como tipo de los elementos del array
    private var items: [Element] = []

    // Elemento genérico usado como tipo del parámetro
    mutating func push(_ item: Element) {
        items.append(item)
    }

    // Elemento genérico usado como tipo del valor de retorno
    mutating func pop() -> Element {
        return items.removeLast()
    }
}

Uso con cadenas:

var stringStack = Stack<String>()
stringStack.push("hello")
stringStack.push("world")
let lastString = stringStack.pop() // lastString es de tipo String

Uso con números:

var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let lastInt = intStack.pop() // lastInt es de tipo Int

Sin genéricos, habría que escribir estructuras separadas para Stack<String>, Stack<Int>, etc., o usar enfoques menos seguros (por ejemplo, Any).