- Mar 15, 2025
[15/16] Qu’est-ce qu’une énumération ?
Introduction
Dans la vie quotidienne, nous sommes constamment amenés à faire des choix parmi un ensemble limité de possibilités. Par exemple : les jours de la semaine, les tailles de vêtements (S, M, L), ou encore les étapes d’une commande (en cours, expédiée, livrée).
En Swift, pour représenter ce genre d’information de façon claire, sûre et typée, nous utilisons les énumérations, aussi appelées enum.
Les énumérations permettent de regrouper un ensemble de valeurs possibles dans un type défini. Elles rendent le code plus lisible, plus expressif, et surtout, elles limitent les erreurs.
Dans ce chapitre, vous allez apprendre à :
créer une énumération,
utiliser des raw values (valeurs brutes),
ajouter des valeurs associées,
comprendre à quoi elles servent concrètement dans vos applications.
Déclaration d’une énumération simple
Commençons par un exemple très simple. Supposons que vous vouliez représenter les points cardinaux :
enum Direction {
case nord
case sud
case est
case ouest
}
Cette énumération définit un type personnalisé Direction avec quatre valeurs possibles. Chaque case représente une option.
Utilisation d’une énumération
let maDirection = Direction.nord
Vous venez de créer une variable maDirection de type Direction, avec la valeur .nord.
📌 Grâce aux énumérations, votre variable ne peut prendre qu’une valeur parmi celles définies, ce qui rend votre code beaucoup plus sûr.
Améliorer la lisibilité avec switch
Les énumérations sont très souvent utilisées avec le mot-clé switch, ce qui rend le code très clair :
func decrire(direction: Direction) {
switch direction {
case .nord:
print("Vous allez vers le nord.")
case .sud:
print("Vous allez vers le sud.")
case .est:
print("Vous allez vers l’est.")
case .ouest:
print("Vous allez vers l’ouest.")
}
}
decrire(direction: .est)
Résultat :
Vous allez vers l’est.
Énumérations avec valeurs brutes (Raw Values)
Parfois, vous souhaitez associer à chaque case une valeur brute, comme un texte, un nombre ou un caractère. Swift permet de le faire très simplement :
enum JourDeLaSemaine: String {
case lundi = "Lundi"
case mardi = "Mardi"
case mercredi = "Mercredi"
}
let jour = JourDeLaSemaine.mardi
print(jour.rawValue) // Affiche : Mardi
Chaque case a ici une valeur texte, accessible via la propriété rawValue.
📌 Vous pouvez aussi utiliser des Int, Double, Character, etc., comme type de raw value.
Exemple avec Int :
enum Niveau: Int {
case debutant = 1
case intermediaire = 2
case avance = 3
}
print(Niveau.avance.rawValue) // Affiche : 3
Énumérations avec valeurs associées
Contrairement aux raw values, les valeurs associées permettent d’attacher une information différente à chaque case, même de types variés.
C’est très utile lorsqu’une case représente un état avec un détail précis.
Exemple : système de notification
enum Notification {
case message(String)
case miseAJour(version: Double)
case erreur(code: Int, description: String)
}
let notif1 = Notification.message("Bienvenue dans l’app !")
let notif2 = Notification.erreur(code: 404, description: "Page non trouvée")
Ces énumérations permettent de modéliser des cas d’usage très concrets et de gérer plusieurs données selon le contexte.
Utilisation avec switch :
func afficher(notification: Notification) {
switch notification {
case .message(let texte):
print("Message reçu : \\\\(texte)")
case .miseAJour(let version):
print("Nouvelle version disponible : \\\\(version)")
case .erreur(let code, let description):
print("Erreur \\\\(code) : \\\\(description)")
}
}
afficher(notification: notif2)
Résultat :
Erreur 404 : Page non trouvée
Exemple concret : les états d’une commande
Imaginons que vous construisiez une application de livraison de repas. Vous pouvez modéliser l’état d’une commande avec une énumération :
enum EtatCommande {
case enCours
case enLivraison(tempsEstime: Int)
case livree
case annulee(raison: String)
}
let commande = EtatCommande.enLivraison(tempsEstime: 20)
Chaque cas correspond à un état bien précis. Et certains peuvent contenir des informations complémentaires.
Conclusion
Les énumérations (enum) sont un outil extrêmement puissant de Swift pour modéliser des choix limités, gérer des états ou encore associer des données à une situation donnée.
Dans ce chapitre, vous avez appris à :
créer une énumération simple,
utiliser des
rawValuepour stocker des valeurs fixes,manipuler des valeurs associées pour enrichir vos cas,
combiner tout cela avec
switchpour créer des logiques claires et robustes.
✅ À l’avenir, chaque fois que vous avez un ensemble de valeurs prédéfinies, pensez à utiliser une enum. Votre code sera plus lisible, plus sécurisé, et plus simple à maintenir.