Junior — Middle
È possibile implementare un protocollo utilizzando generici in un linguaggio di programmazione?
sobes.tech AI
Risposta dell'AI
In Swift, è possibile utilizzare i generici insieme ai protocolli, ma i protocolli stessi non sono generici. Al contrario, si possono creare protocolli con tipi associati (associated types), che consentono di definire requisiti generici. Questo permette di implementare interfacce flessibili e sicure in termini di tipi.
Esempio di protocollo con un tipo associato:
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]
}
}
In questo modo, i protocolli con tipi associati sono un modo per implementare interfacce generiche, simili ai generici.