Menu
Coddy logo textTech

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'union

La 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îne

Vous 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.

challenge icon

Défi

Facile

Cré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 :

  1. Appelle printId(42)
  2. Appelle printId("<code>user123")
  3. Affiche status
  4. Réaffecte status à 200 et 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
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