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. Adastring? 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.
Défi
FacileÉcris une fonction de profil dont le nom d’affichage est facultatif.
- Écris
local function createUserProfile(username: string, displayName: string?): string. - Renvoie
`Profile: {displayName} (@{username})`lorsquedisplayNameest fourni, sinon`Profile: @{username}`. - Affiche
createUserProfile("john_doe", "John Doe")etcreateUserProfile("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
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ées3Tables 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