Enum

Définition, exemples et bonnes pratiques

À 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

énumération type énuméré constantes groupées

Antonymes

variable libre type dynamique

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.