• 15 mars 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 rawValue pour stocker des valeurs fixes,

  • manipuler des valeurs associées pour enrichir vos cas,

  • combiner tout cela avec switch pour 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.

0 comments

Rejoindreor login to leave a comment