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.