Sobes.tech
Junior

¿Qué principio de programación permite usar genéricos?

sobes.tech AI

Respuesta de la IA

Polimorfismo de subtipos.

Los genéricos en Swift implementan el polimorfismo paramétrico, permitiendo escribir código que puede trabajar con diferentes tipos sin conocerlos de antemano, pero requiriendo que estos tipos cumplan con ciertas restricciones (por ejemplo, protocolos).

Ejemplo de uso de genéricos:

// Definición de una función genérica que acepta dos parámetros del mismo tipo T,
// donde el tipo T debe cumplir con el protocolo Equatable.
func areEqual<T: Equatable>(_ a: T, _ b: T) -> Bool {
    return a == b
}

// Uso de la función genérica con Int
let intResult = areEqual(5, 5) // true

// Uso de la función genérica con String
let stringResult = areEqual("hello", "world") // false

Ejemplo de estructura genérica (pila):

// Definición de una estructura genérica "Stack", que puede almacenar elementos de cualquier tipo T.
struct Stack<T> {
    private var elements: [T] = []

    mutating func push(_ element: T) {
        elements.append(element)
    }

    mutating func pop() -> T? {
        return elements.popLast()
    }
}

// Uso de la estructura genérica con Int
var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let poppedInt = intStack.pop() // 2

// Uso de la estructura genérica con String
var stringStack = Stack<String>()
stringStack.push("A")
stringStack.push("B")
let poppedString = stringStack.pop() // "B"

Ventajas del uso de genéricos:

  • Seguridad de tipos: El compilador verifica los tipos durante la compilación, reduciendo la probabilidad de errores en tiempo de ejecución.
  • Reutilización de código: El mismo código puede trabajar con diferentes tipos.
  • Rendimiento: No es necesario realizar conversiones de tipos en tiempo de ejecución.
  • Abstracción: Permiten abstraerse de tipos de datos específicos.