Types unions
Fait partie de la section Introduction à Luau du Journey Lua de Coddy. Leçon 31 sur 73.
Parfois, un seul type ne suffit pas. Un identifiant utilisateur peut arriver sous la forme de "user123" ou de 42. En Lua classique, il vous faudrait simplement espérer que tout se passe bien ; Luau vous fournit des types union : la barre verticale | se lit « ou » :
local userId: number | string
userId = "user123" -- ✓ une chaîne est autorisée
userId = 42 -- ✓ un nombre est autorisé
userId = true -- ✗ erreur de type : boolean n'est pas dans l'unionLa variable peut contenir l'un ou l'autre membre de l'union, et uniquement ceux-là. C'est la différence essentielle avec any : une union reste stricte quant à ce qui est autorisé, tout en vous offrant la flexibilité dont vous avez besoin.
Les unions sont particulièrement utiles pour les paramètres de fonction qui acceptent plusieurs formats d'entrée :
function printId(id: number | string): ()
print(id)
end
printId(42) -- fonctionne avec un nombre
printId("user123") -- fonctionne avec une chaîneVous connaissez déjà string?. C'était votre première union ! C'est simplement une notation abrégée pour string | nil. Dans la prochaine leçon, vous apprendrez à travailler en toute sécurité avec une valeur d'union une fois que vous en aurez une.
Défi
FacileCrée une fonction nommée printId qui prend id: number | string et l'affiche : type de retour explicite ().
Déclare une variable status de type string | number, initialisée à "<code>active".
Ensuite, dans l'ordre :
- Appelle
printId(42) - Appelle
printId("<code>user123") - Affiche
status - Réaffecte
statusà200et affiche-la à nouveau
Quatre lignes de sortie au total.
Essayez vous-même
-- Écrire le code ici
-- printId(id: number | string): ()
-- local status: string | number = le texte exact des instructions
-- appeler printId(42), printId(le texte exact des instructions),
-- imprimer status, réassigner à 200, imprimer à nouveau
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
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
Typage des paramètres et valeurs de retourTypage des fonctions anonymesFonctions ne retournant rienParamètres optionnelsValeurs par défaut des paramètresFonctions variadiquesDéfinition des types de fonctionsRécapitulatif : Fonctions typées2Types fondamentaux
Types de base : num, str, boolLe type 'any' : la porte de sortieLe type 'unknown'Types Nil et optionnelsL'inférence de type en actionAnnotations explicites de typeRécapitulatif : Pratique des 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ées3Tables typées : Tableaux et Maps
Tableaux typésAjout et lecture d'élémentsQu'est-ce qu'un type Map ?Déclaration et accès aux MapsItération sur les tablesTables à formes mixtesTableaux typés multidimensionnelstable.unpack et VarargsRécapitulatif : Tableaux et MapsEntraînez-vous par vous-même : Compilateur Lua en ligne