Menu
CoddyTech

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) .. "!"
end

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

challenge icon

Défi

Facile

Stocke des fonctions typées dans des variables locales.

  1. Réécris subtract sous la forme local subtract = function(a: number, b: number): number, en conservant son corps.
  2. Ajoute local isPositive = function(num: number): boolean, qui renvoie num > 0.
  3. Affiche subtract(10, 3) et isPositive(-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

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