Junior — Middle
Peut-on implémenter un protocole en utilisant des génériques dans un langage de programmation?
sobes.tech IA
Réponse de l'IA
En Swift, il est possible d'utiliser des génériques avec des protocoles, mais les protocoles eux-mêmes ne sont pas génériques. À la place, on peut créer des protocoles avec des types associés (associated types), qui permettent de définir des exigences génériques. Cela permet de réaliser des interfaces flexibles et sûres en termes de types.
Exemple de protocole avec un type associé :
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]
}
}
Ainsi, les protocoles avec types associés sont une façon de réaliser des interfaces génériques, semblables aux génériques.