Fonctionnement de l’inférence des types
Découvrez comment Swift déduit les types à partir du contexte.
Fonctionnement de l’inférence des types est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. 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 4 leçons au total.
Qu’est-ce que l’inférence de type
Swift peut déduire le type d’une valeur à partir du contexte d’une expression. Vous n’avez souvent pas besoin d’écrire explicitement le type.
let count = 42
let name = "Swift"
print(type(of: count))
print(type(of: name))Inféré à partir des littéraux
Un littéral entier est inféré comme Int, un littéral décimal comme Double et un littéral entre guillemets comme String.
let a = 10
let b = 3.14
let c = "hello"
print(type(of: a), type(of: b), type(of: c))Inféré à partir de l’initialiseur
Lorsque vous appelez un initialiseur, le type du résultat détermine l’inférence pour la variable.
let pi = Double.pi
let flag = Bool(true)
print(type(of: pi))
print(type(of: flag))Inféré à partir du retour d’une fonction
Une variable affectée à partir d’un appel de fonction prend le type renvoyé par cette fonction.
func makeGreeting() -> String {
return "Hi"
}
let g = makeGreeting()
print(type(of: g))Inférence dans les collections
Les littéraux de tableaux et de dictionnaires déduisent le type de leurs éléments à partir des valeurs qu’ils contiennent.
let nums = [1, 2, 3]
let pairs = ["a": 1, "b": 2]
print(type(of: nums))
print(type(of: pairs))Inférence bidirectionnelle
Swift effectue l’inférence dans les deux directions : de la valeur vers la variable et du type déclaré vers le littéral.
let x = 5 // Int inferred from literal
let y: Double = 5 // literal adapts to Double
print(type(of: x), type(of: y))Inférence entre les expressions
Le compilateur résout ensemble les types de toute une expression et choisit ceux qui rendent toutes les opérations valides.
let result = 2 + 3 * 4
print(result)
print(type(of: result))L’inférence réduit le bruit
L’inférence garde le code clair. Écrire let names: [String] = [...] est redondant lorsque le littéral indique déjà String.
let names = ["Ada", "Bob", "Cleo"]
print(names.count)Quand l’inférence échoue
Si le compilateur ne peut pas trouver un type unique, vous obtenez une erreur et devez ajouter une annotation. Les collections vides en sont un cas classique.
let empty: [Int] = []
print(empty.isEmpty)L’inférence est statique
L’inférence a lieu lors de la compilation. Une fois déduit, le type est définitif ; Swift n’est pas typé dynamiquement.
var n = 10
// n = "text" // would be a compile error
n = 20
print(n)Inférence et performances
L’inférence n’a aucun coût à l’exécution. Le compilateur résout les types avant de produire le binaire : le code dont les types sont inférés s’exécute donc exactement aussi vite que le code annoté.
let total = (1...100).reduce(0, +)
print(total)Vérification rapide
Testez votre compréhension de l’inférence.
Récapitulatif
L’inférence de type permet à Swift de déduire les types à partir des littéraux, des initialiseurs, des valeurs de retour et du contexte environnant lors de la compilation. Elle réduit le bruit sans aucun coût à l’exécution, mais échoue lorsqu’aucun type unique ne peut être déterminé, par exemple pour les collections vides.
let a = 1
let b = 2.0
let c = "x"
print(type(of: a), type(of: b), type(of: c))Questions Fréquemment Posées
La leçon « Fonctionnement de l’inférence des types » est-elle gratuite ?
Oui — le texte complet de « Fonctionnement de l’inférence des types » 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 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fonctionnement de l’inférence des types » ?
Découvrez comment Swift déduit les types à partir du contexte. 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 4.
Combien de temps prend la leçon « Fonctionnement de l’inférence des types » ?
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
- Fonctionnement de l’inférence des types
- Quand ajouter des annotations explicites
- Inférence avec les littéraux
- Inférence dans les fermetures