Menu
Coddy logo textTech

Une fonction d'identité générique

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

Voici la fonction identité correctement écrite, sous forme de fonction générique :

local function identity<T>(value: T): T
    return value
end

Le <T> après le nom de la fonction déclare un paramètre de type : un espace réservé qui représente « un certain type, déterminé à chaque appel ». Dans la signature, tu utilises T exactement comme un type réel : le paramètre est un T, et la fonction renvoie un T.

Utiliser le même T pour l’entrée et la sortie est toute l’astuce. Cela les lie ensemble. Appelle identity("hello") et le vérificateur détermine que T = string pour cet appel, donc le résultat est une string. Appelle identity(42) et T = number, donc le résultat est un number. Un seul corps, tous les types, rien n’est perdu.

T n’est qu’un nom conventionnel (abréviation de « Type ») : <Item> ou <Value> conviennent tout aussi bien. Et comme toujours en Luau, les chevrons n’existent que pour le vérificateur : à l’exécution, il s’agit de la simple fonction Lua function identity(value) return value end.

challenge icon

Défi

Facile

Crée une fonction générique nommée identity qui :

  • déclare un paramètre de type T
  • accepte un paramètre nommé value de type T
  • renvoie cette valeur, avec le type de retour T

Crée ensuite ces variables typées à l’aide de ta fonction :

  • luckyNumber de type number : appelle identity avec 7
  • greeting de type string : appelle identity avec "Hello, Luau!"
  • isReady de type boolean : appelle identity avec true

Affiche les éléments suivants, chacun sur sa propre ligne :

  1. luckyNumber
  2. greeting
  3. isReady
  4. le résultat de l’appel direct de identity avec "<code>generics" à l’intérieur de print
  5. le résultat de l’appel direct de identity avec 99 à l’intérieur de print

Essayez vous-même

-- Écrivez le code ici
-- 1) définir identity<T>(value: T): T
-- 2) créer luckyNumber, greeting et isReady avec des appels à identity
-- 3) les afficher, puis afficher identity(le texte exact des instructions) et identity(99)
quiz iconTestez-vous

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

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