Menu
Coddy logo textTech

Le pattern Enum dans Luau

Fait partie de la section Introduction à Luau du Journey Lua de Coddy. Leçon 51 sur 73.

Les programmes regorgent de valeurs provenant d’un ensemble restreint et fixe : une commande est en attente, expédiée ou livrée ; un joueur fait face vers le haut, le bas, la gauche ou la droite. De nombreux langages possèdent un mot-clé enum pour cela. Luau n’en possède pas, et n’en a pas besoin, car deux outils que tu maîtrises déjà couvrent ce besoin.

Modèle 1 : la table de constantes. Une table ordinaire associe des noms explicites à des valeurs, remplaçant les « nombres magiques » dispersés dans le code :

local Status = {
    Pending = 1,
    Active = 2,
    Done = 3,
}

print(Status.Active) -- 2

Il s’agit d’une véritable valeur à l’exécution : tu peux lire Status.Active, la comparer et la transmettre, tout comme les tables que tu as utilisées jusqu’à présent.

Modèle 2 : l’union de littéraux. Un type constitué de valeurs de chaîne exactes, utilisant les types littéraux que tu as découverts dans le chapitre sur les unions :

type Color = "red" | "green" | "blue"
local favorite: Color = "green" -- ✓
local oops: Color = "yellow"    -- ✗ erreur de type

L’union n’existe que pour le vérificateur, sans aucun coût à l’exécution, mais elle garantit qu’une variable ne peut contenir aucune valeur en dehors de l’ensemble. Les deux modèles se complètent : la table te fournit des valeurs à l’exécution sous un même nom ; l’union te fournit une garantie à la compilation. Plus loin dans ce chapitre, tu découvriras également table.freeze, qui protège une table de constantes contre toute modification à l’exécution.

Essayez vous-même

Cette leçon ne comprend pas de défi de code.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Introduction à Luau

Entraînez-vous par vous-même : Compilateur Lua en ligne