Menu
CoddyTech

Paramètres optionnels

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

En Lua classique, tu pouvais toujours omettre des arguments : ceux qui manquaient devenaient silencieusement nil, et oublier de gérer ce cas était une source classique de bogues. Luau explicite cette possibilité : ajoute ? au type d’un paramètre pour le marquer comme facultatif.

function greet(name: string, title: string?): string
    if title then
        return `{title} {name}`
    end
    return `Hello, {name}`
end

print(greet("Ada"))          -- Bonjour, Ada
print(greet("Ada", "Dr."))   -- Dr. Ada

string? signifie « string ou nil ». Les appelants peuvent passer une chaîne ou omettre complètement l’argument ; les paramètres sans ? sont obligatoires, et le vérificateur signale les appels où ils sont omis.

Dans la fonction, un paramètre facultatif peut être nil ; vérifie donc sa valeur avant de l’utiliser : if title then ... end est le modèle standard. Si tu omets cette vérification et concatènes nil à une chaîne, tu obtiens la même erreur d’exécution que Lua a toujours produite ; le vérificateur de types t’avertit d’abord.

challenge icon

Défi

Facile

Écris une fonction de profil dont le nom d’affichage est facultatif.

  1. Écris local function createUserProfile(username: string, displayName: string?): string.
  2. Renvoie `Profile: {displayName} (@{username})` lorsque displayName est fourni, sinon `Profile: @{username}`.
  3. Affiche createUserProfile("john_doe", "John Doe") et createUserProfile("jane_smith").

Appuie sur Exécuter le code : la sortie affiche Profile: John Doe (@john_doe) et Profile: @jane_smith.

Essayez vous-même

-- 1) createUserProfile(username: string, displayName: string?): string
-- 2) affiche le résultat avec et sans nom d’affichage

Toutes les leçons de Introduction à Luau

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