0Pricing
Swift Academy · Leçon

Fonctions et types génériques

Écrivez des fonctions et des types génériques avec des paramètres de type (par exemple, ). Découvrez comment le compilateur déduit les types et garantit un code sûr et réutilisable.

Fonctions et types 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 les génériques ?

Les génériques vous permettent d'écrire une seule fonction ou un seul type qui fonctionne avec de nombreux types tout en garantissant la sûreté des types. Vous verrez <T> pour les paramètres de type et découvrirez comment l'inférence simplifie les appels.

Fonction générique

Une fonction générique utilise un paramètre de type (<T>). Le compilateur vérifie les types pour chaque appel.

// Generic swap for any type T
func swapValues<T>(_ a: inout T, _ b: inout T) {
    let temp = a
    a = b
    b = temp
}

var x = 1, y = 2
swapValues(&x, &y)
print(x, y)  // 2 1

var s1 = "A", s2 = "B"
swapValues(&s1, &s2)
print(s1, s2) // B A

Type générique

Les types peuvent eux aussi être génériques : déclarez Stack<Élément> et réutilisez-le pour des valeurs entières, des chaînes et bien d'autres types.

// A minimal generic stack
struct Stack<Element> {
    private var items: [Element] = []
    mutating func push(_ x: Element) { items.append(x) }
    mutating func pop() -> Element? { items.popLast() }
    var top: Element? { items.last }
}

var intStack = Stack<Int>()
intStack.push(10); intStack.push(20)
print(intStack.top ?? -1)   // 20

var textStack = Stack<String>()
textStack.push("hi"); textStack.push("bye")
print(textStack.pop() ?? "?")

Inférence de type

Swift déduit souvent les types génériques, si bien que vous les indiquez rarement explicitement lors des appels.

// The compiler infers T from arguments/assignments
func makePair<T>(_ a: T, _ b: T) -> (T, T) { (a, b) }

let pair1 = makePair(1, 2)          // T inferred as Int
let pair2 = makePair("a", "b")      // T inferred as String
print(pair1, pair2)

Éviter les répétitions

Sans génériques, vous répétez le code pour chaque type. Les génériques éliminent les répétitions tout en conservant les vérifications statiques.

// Non-generic overloads would duplicate logic:
func eqInt(_ a: Int, _ b: Int) -> Bool { a == b }
func eqStr(_ a: String, _ b: String) -> Bool { a == b }
// A single generic can replace both:

Remarques et conventions de nommage

Remarques :

  • Utilisez des noms clairs : T, Élément ou un nom propre au domaine.
  • Gardez des interfaces réduites et ciblées.
  • Ensuite, ajoutez des contraintes avec where pour limiter T lorsque c'est nécessaire.

Signification de <T>

Vérification rapide : que signifie <T> dans une fonction générique ?

Récapitulatif

Récapitulatif : définissez des fonctions génériques avec <T> et construisez des types génériques comme Stack<Élément>. Swift déduit les types lors des appels, ce qui rend le code réutilisable et sûr.

Questions Fréquemment Posées

La leçon « Fonctions et types génériques » est-elle gratuite ?

Oui — le texte complet de « Fonctions et types 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 « Fonctions et types génériques » ?

Écrivez des fonctions et des types génériques avec des paramètres de type (par exemple, ). Découvrez comment le compilateur déduit les types et garantit un code sûr et réutilisable. 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 « Fonctions et types 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

  1. Fonctions et types génériques
  2. Contraintes (where) et inférence de types
  3. Algorithmes génériques sur les collections
← Retour à Swift Academy