Enums de chaînes comme unions
Fait partie de la section Introduction à Luau du Journey Lua de Coddy. Leçon 57 sur 80.
Les nombres produisent des journaux cryptiques : voir 2 ne vous apprend pas grand-chose, voir "down" vous dit tout. Pour créer des énumérations lisibles, les types union littéraux de Luau sont l’outil adapté : un type dont les membres sont des chaînes exactes :
type Direction = "up" | "down" | "left" | "right"
local facing: Direction = "up" -- ✓
local typo: Direction = "upp" -- ✗ erreur de type pendant la modificationUne variable annotée avec Direction peut contenir ces quatre chaînes et rien d’autre. Faites une faute de frappe et le vérificateur la détecte immédiatement : le bogue n’atteint jamais un joueur.
À l’exécution, les valeurs sont de simples chaînes. Affichez-les, concaténez-les, comparez-les avec ==. Tout ce que vous savez sur les chaînes s’applique :
print(facing) -- haut
print(`facing {facing}`) -- facing hautComparez les deux modèles dont vous disposez maintenant : la table de constantes crée une valeur à l’exécution (UserRole) qui contient des membres, tandis que l’union littérale ne crée aucune valeur. Il n’existe pas de table Direction, seulement une règle que le vérificateur applique pour déterminer quelles chaînes conviennent. Des valeurs descriptives et explicites, sans coût à l’exécution : les unions littérales sont le style d’énumération de prédilection dans le code Luau.
Défi
FacileEnregistre une direction qui ne peut être qu’un de quatre noms.
- Écris
type Direction = "up" | "down" | "left" | "right". - Déclare
local facing: Direction = "left". - Affiche
facing, puis`The player moves {facing}`.
Appuie sur Run Code : la sortie affiche left et The player moves left.
Essayez vous-même
-- 1) définis le type Direction comme une union de quatre chaînes de caractères
-- 2) local facing: Direction = "left"
-- 3) affiche facing, puis la phrase
Toutes les leçons de Introduction à Luau
1Premiers pas avec Luau
Qu'est-ce que Luau ?Pourquoi utiliser Luau ?Votre premier code LuauVérification de type et modes d'erreurRécapitulatif : Introduction à Luau4Travailler avec les fonctions
Typer les paramètres et les valeurs de retourTyper les fonctions anonymesFonctions sans valeur de retourParamètres optionnelsValeurs par défaut des paramètresValeurs par défaut pour les booléensFonctions variadiquesDéfinir des types de fonctionsRécapitulatif : fonctions typées7Projet : gestionnaire de tâches typé
Projet : la structure d’une tâcheFonction pour ajouter une tâche2Types fondamentaux
Nombre, chaîne de caractères et booléenLe type « any » : une échappatoireLe type « unknown »Types nil et optionnelsL’inférence de types en actionAnnotations de type explicitesRécapitulatif : exercices sur les types fondamentaux5Alias, unions et intersections
Alias de types pour les types primitifsTypes unionsTravailler avec les types unionsTypes littérauxTypes intersectionsCombinaison d'alias de typesRécapitulatif : Combinaisons de types avancées8Les Enums, à la manière de Luau
Le pattern Enum dans LuauEnums numériques avec des tablesEnums de chaînes comme unionsUtiliser des Enums d'unions littéralesGeler les tables de constantesRécapitulatif : Les Enums, à la manière de Luau3Tables typées : tableaux et maps
Tableaux typésAjouter et lire des élémentsQu’est-ce qu’un type Map ?Déclarer et accéder aux mapsParcourir les tablesTables de formes mixtesLire une grilleConstruire une grilletable.unpackRécapitulatif : tableaux et mapsEntraînez-vous par vous-même : Compilateur Luau en ligne