Junior — Middle
É possível implementar um protocolo usando genéricos numa linguagem de programação?
sobes.tech IA
Resposta da IA
No Swift, é possível usar genéricos juntamente com protocolos, mas os protocolos em si não são genéricos. Em vez disso, pode-se criar protocolos com tipos associados (associated types), que permitem definir requisitos genéricos. Isso possibilita implementar interfaces flexíveis e seguras em termos de tipos.
Exemplo de protocolo com um tipo associado:
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]
}
}
Dessa forma, protocolos com tipos associados são uma maneira de implementar interfaces genéricas, semelhantes aos genéricos.