Junior — Middle
¿Se puede implementar un protocolo utilizando genéricos en un lenguaje de programación?
sobes.tech AI
Respuesta de la IA
En Swift, se pueden usar genéricos junto con protocolos, pero los protocolos en sí mismos no son genéricos. En su lugar, se pueden crear protocolos con tipos asociados (associated types), que permiten definir requisitos genéricos. Esto permite implementar interfaces flexibles y seguras en cuanto a tipos.
Ejemplo de un protocolo con un tipo asociado:
protocol Container {
associatedtype Item
func append(_ item: Item)
var count: Int { get }
subscript(i: Int) -> Item { get }
}
struct IntStack: Container {
var items = [Int]()
mutating func append(_ item: Int) {
items.append(item)
}
var count: Int {
return items.count
}
subscript(i: Int) -> Int {
return items[i]
}
}
De esta manera, los protocolos con tipos asociados son una forma de implementar interfaces genéricas, similares a los genéricos.