associatedtype et protocoles génériques
Définissez des protocoles avec associatedtype , découvrez comment les types conformes les associent et utilisez des fonctions génériques avec des contraintes de protocole.
associatedtype et protocoles génériques est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 3 leçons au total.
Pourquoi des types associés ?
Les protocoles peuvent être génériques grâce aux types associés. Les types conformes lient l'emplacement réservé à un type concret.
Protocole avec type associé
Item associé joue le rôle d'un paramètre de type. Les exigences peuvent l'utiliser dans des méthodes, des sous-scripts et des propriétés.
protocol Container {
associatedtype Item
mutating func append(_ item: Item)
var count: Int { get }
subscript(index: Int) -> Item { get }
}Conformité concrète
Un type conforme choisit un Item concret, ici un type entier, en implémentant les exigences avec ce type.
struct IntStack: Container {
// Binds Item == Int implicitly by usage
private var items: [Int] = []
mutating func append(_ item: Int) { items.append(item) }
var count: Int { items.count }
subscript(index: Int) -> Int { items[index] }
}
var st = IntStack()
st.append(10); st.append(20)
print(st.count, st[1])Type conforme générique
Un type générique peut se conformer en liant Item == Élément, ce qui préserve le caractère générique et réutilisable du protocole.
struct Stack<Element>: Container {
private var items: [Element] = []
mutating func append(_ item: Element) { items.append(item) }
var count: Int { items.count }
subscript(index: Int) -> Element { items[index] }
// Here, associatedtype Item == Element
}
var s = Stack<String>()
s.append("hi"); s.append("bye")
print(s.count, s[1])Utiliser le protocole dans les génériques
Contraignez les fonctions avec C : Conteneur. Vous pouvez utiliser C.Item de manière abstraite sans le fixer.
// Generic algorithm operating on any Container
func dumpFirstTwo<C: Container>(_ c: C) {
// We can talk about C.Item but not assume concrete type
if c.count >= 2 {
print("0:", c[0])
print("1:", c[1])
} else {
print("too few elements")
}
}
dumpFirstTwo(s) // works with Stack<String>
dumpFirstTwo(st) // works with IntStackRemarques et conseils
Remarques :
- Les protocoles avec des types associés ne s'utilisent pas directement comme des types ; préférez les génériques ou l'effacement de type.
- Nommez clairement les emplacements réservés (Item, Élément).
- La conformité peut être explicite (
typealias Item = ...) ou déduite des signatures.
Signification du type associé
Vérification rapide : que signifie associatedtype ?
Récapitulatif
Récapitulatif : utilisez les types associés pour rendre les protocoles génériques. Les types conformes choisissent le type concret, et les fonctions génériques peuvent fonctionner avec n'importe quel type conforme grâce aux contraintes.
Questions Fréquemment Posées
La leçon « associatedtype et protocoles génériques » est-elle gratuite ?
Oui — le texte complet de « associatedtype et protocoles génériques » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 3 leçons au total.
Qu'est-ce que j'apprendrai dans « associatedtype et protocoles génériques » ?
Définissez des protocoles avec associatedtype , découvrez comment les types conformes les associent et utilisez des fonctions génériques avec des contraintes de protocole. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Swift Academy ?
Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 3.
Combien de temps prend la leçon « associatedtype et protocoles génériques » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?
Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- associatedtype et protocoles génériques
- Schémas d’effacement de type (AnySequence/AnyIterator)
- Quand utiliser les existentiels (any P) plutôt que les génériques