Menu
CoddyTech

Utiliser une fonction générique

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

Tu n’indiques jamais à identity ce qu’est T : le vérificateur le détermine lui-même. C’est l’inférence de types : à chaque appel, Luau examine l’argument et détermine T :

local word = identity("Luau")   -- T inféré comme string
local count = identity(12)      -- T inféré comme number
local flag = identity(false)    -- T inféré comme boolean

Chaque appel est indépendant : T peut être une chaîne sur une ligne et un nombre sur la suivante. Le résultat inféré est tout aussi sûr qu’une annotation écrite à la main : pour le vérificateur, word est une string, avec la complétion automatique complète et la vérification des erreurs.

Une différence importante par rapport à TypeScript : TS te permet de forcer le type au site d’appel avec identity<number>(5). Luau n’a pas d’arguments de type au site d’appel. Cette ligne n’est pas une syntaxe spéciale, alors Luau interprète les chevrons comme des opérateurs inférieur à/supérieur à, et le code échoue. Lorsque tu veux préciser explicitement le type, annote plutôt la variable :

local count: number = identity(12)

Tu peux observer l’inférence à l’œuvre avec un outil familier : typeof renvoie le nom du type à l’exécution d’une valeur, donc print(typeof(identity(12))) affiche number : la valeur a traversé la fonction générique sans aucune modification.

challenge icon

Défi

Facile

Laisse le vérificateur déterminer T à chaque appel.

  1. Sous la fonction, stocke identity("Oslo") dans local city et identity(42) dans local floors, sans annotations.
  2. Affiche typeof(city), puis typeof(floors).

Appuie sur Run Code : le résultat affiche string et number.

Essayez vous-même

-- La fonction identité générique de la leçon précédente
local function identity<T>(value: T): T
    return value
end

-- 1) city et floors obtenus par des appels à identity, sans annotations
-- 2) afficher le typeof de chacun

Toutes les leçons de Introduction à Luau

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