Typer les fonctions anonymes
Fait partie de la section Introduction à Luau du Journey Lua de Coddy. Leçon 24 sur 80.
En Lua, les fonctions sont des valeurs : tu les as stockées dans des variables et tu les as transmises : local f = function(x) return x * 2 end. Ces fonctions anonymes (expressions de fonction) prennent des annotations de type exactement comme les fonctions nommées :
local double = function(x: number): number
return x * 2
end
local shout = function(text: string): string
return string.upper(text) .. "!"
endLes paramètres prennent la forme name: type entre les parenthèses, et le type de retour suit la parenthèse fermante : la seule différence avec une fonction nommée est que le mot-clé function n'a pas de nom et que l'expression entière est assignée à une variable.
Si tu connais JavaScript ou TypeScript, note que Luau n'a pas de fonctions fléchées. Il n'existe pas de syntaxe =>. Chaque expression de fonction s'écrit avec function ... end, qu'elle soit longue ou courte.
Une fois assignée, tu l'appelles via la variable comme n'importe quelle fonction : double(21) renvoie 42, et le vérificateur contrôle chaque appel en fonction des annotations que tu as écrites.
Défi
FacileStocke des fonctions typées dans des variables locales.
- Réécris
subtractsous la formelocal subtract = function(a: number, b: number): number, en conservant son corps. - Ajoute
local isPositive = function(num: number): boolean, qui renvoienum > 0. - Affiche
subtract(10, 3)etisPositive(-5).
Appuie sur Exécuter le code : la sortie affiche 7 et false.
Essayez vous-même
-- Réécris ceci sous forme de fonction anonyme stockée dans une variable locale
function subtract(a: number, b: number): number
return a - b
end
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