Valeurs par défaut des paramètres
Fait partie de la section Introduction à Luau du Journey Lua de Coddy — leçon 26 sur 73.
Les paramètres optionnels vous laissent un nil à gérer. Souvent, ce que vous voulez vraiment, c'est une valeur par défaut — "si l'appelant n'a rien spécifié, utiliser X". Luau n'a pas de syntaxe par défaut dans la signature (il n'y a pas de greeting: string = "Hello") ; vous utilisez plutôt l'idiome Lua classique, désormais avec des types :
function greet(name: string, greeting: string?): string
greeting = greeting or "Hello"
return `{greeting}, {name}`
end
print(greet("Alice")) -- Bonjour, Alice
print(greet("Alice", "Howdy")) -- Salut, AliceLe paramètre est annoté comme optionnel (string?), et la première ligne du corps remplace nil par la valeur par défaut. Cela fonctionne car nil est évalué à faux — nil or "Hello" s'évalue en "Hello". Après cette ligne, le vérificateur sait que greeting ne peut plus être nil.
Une mise en garde que vous connaissez dans Lua : or remplace également false ! Pour un paramètre boolean?, flag = flag or true remplacerait silencieusement un false explicite. Utilisez plutôt une vérification explicite de nil :
function ship(weight: number, expedited: boolean?): number
if expedited == nil then
expedited = false
end
-- ...
endDéfi
FacileCréez une fonction nommée calculateTax prenant price: number (obligatoire) et rate: number? ayant pour valeur par défaut 0.05. Retournez le montant de la taxe (price * rate) sous forme de number.
Créez une fonction nommée formatGreeting prenant name: string (obligatoire) et timeOfDay: string? ayant pour valeur par défaut "Hello". Retournez "[timeOfDay], [name]!" sous forme de string.
Créez une fonction nommée calculateShipping prenant weight: number, distance: number (tous deux obligatoires) et expedited: boolean? ayant pour valeur par défaut false — utilisez une vérification explicite de nil pour celle-ci ! Calculez (weight * 0.5) + (distance * 0.1), et si expedited est vrai, multipliez le résultat par 2. Retournez un number.
Appelez et affichez avec print, chacun sur sa propre ligne :
calculateTax(100)calculateTax(200, 0.08)formatGreeting("Alice")formatGreeting("Bob", "Good morning")calculateShipping(5, 100)calculateShipping(3, 50, true)
Essayez vous-même
-- Écrivez le code ici
-- calculateTax(price: number, rate: number?) -- taux par défaut 0.05
-- formatGreeting(name: string, timeOfDay: string?) -- par défaut "Hello"
-- calculateShipping(weight, distance, expedited: boolean?) -- par défaut false
-- puis imprimez les six résultats
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 Maps