À retenir
- Limite les valeurs possibles à une liste de noms fixes.
- Améliore grandement la lisibilité du code source.
- Prévient les erreurs de saisie durant le développement.
Une énumération est une liste fermée de choix prédéfinis utilisés dans un programme. Imaginez une boîte de chocolats où chaque emplacement a un nom précis : vous ne pouvez choisir que parmi ceux qui existent, ce qui évite d'inventer une option qui n'aurait aucun sens pour l'ordinateur.
Étymologie
Le terme est l'abréviation de l'anglais enumeration. Il tire son origine du latin enumeratio, qui signifie « action de compter un par un ». En informatique, il s'est imposé pour remplacer les nombres obscurs par des noms lisibles par l'humain.
Exemples d'usage
- Les jours de la semaine (Lundi, Mardi, Mercredi...).
- L'état d'un paiement (En attente, Validé, Échoué).
- Les points cardinaux (Nord, Sud, Est, Ouest).
Cas d'usage
On utilise les enums pour sécuriser le code : au lieu d'utiliser des chiffres (comme 0 ou 1) ou du texte libre, on force le programme à choisir une option valide parmi une liste. C'est très courant pour gérer des menus, des statuts de commande ou des réglages de configuration.
Bonnes pratiques
Utilisez des noms explicites pour chaque élément. Il est préférable d'utiliser une enum plutôt que des "nombres magiques" (des chiffres dont on ne comprend pas le sens au premier coup d'œil) ou des chaînes de caractères qui pourraient contenir des fautes de frappe.
Synonymes
Antonymes
Conseil
Dès que vous avez une variable qui ne peut prendre que 3 ou 4 états différents, créez une enum. C'est un excellent réflexe qui rendra votre code beaucoup plus robuste et facile à relire par d'autres.
Questions fréquentes
Pourquoi ne pas simplement utiliser du texte ?
Le texte est sujet aux fautes de frappe (ex: 'Valide' au lieu de 'Validé'). Avec une enum, l'ordinateur vérifie que le mot exact existe déjà.
Une enum a-t-elle une valeur numérique ?
Généralement oui, en arrière-plan, la plupart des langages associent le premier élément à 0, le deuxième à 1, etc.