Sobes.tech
Junior — Middle

¿Cómo se puede restringir los tipos permitidos de parámetros en genéricos dentro de un método?

sobes.tech AI

Respuesta de la IA

En Swift, para restringir los tipos permitidos de parámetros en genéricos dentro de un método, se utiliza la sintaxis de restricción mediante protocolos o clases a través de la palabra clave where o indicando herencia.

Ejemplo de restricción de un tipo de parámetro que debe cumplir con el protocolo Equatable:

func findIndex<T: Equatable>(of valueToFind: T, in array: [T]) -> Int? {
    for (index, value) in array.enumerated() {
        if value == valueToFind {
            return index
        }
    }
    return nil
}

Si se necesita una restricción más compleja, se puede usar where:

func compareItems<T, U>(item1: T, item2: U) where T: Comparable, T == U {
    if item1 < item2 {
        print("item1 es menor que item2")
    }
}

De esta forma, las restricciones permiten que el compilador verifique que los tipos de los parámetros cumplen con los requisitos establecidos, lo que aumenta la seguridad y la predictibilidad del código.