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 d'identité correctement écrite — sous la forme d'une fonction générique (generic) :

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

Le <T> après le nom de la function déclare un paramètre de type — un espace réservé qui signifie "un certain type, déterminé lors de chaque call". À l'intérieur de la signature, vous utilisez T exactement comme un vrai type : le paramètre est un T, et la function renvoie un T.

Utiliser le même T pour l'entrée et la sortie est tout le secret — cela les lie ensemble. Appelez identity("hello") et le vérificateur décide que T = string pour cet appel, donc le result est un string. Appelez identity(42) et T = number, donc le result est un number. One corps, every type, rien n'est perdu.

T n'est qu'un nom conventionnel (court pour "Type") — <Item> ou <Value> fonctionnent tout aussi bien. Et comme toujours dans Luau, les crochets d'angle n'existent que pour le vérificateur : à l'exécution, il s'agit d'une simple fonction Lua function identity(value) return value end.

challenge icon

Défi

Facile

Créez 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

Ensuite, créez ces variables typées en utilisant votre fonction :

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

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

  1. luckyNumber
  2. greeting
  3. isReady
  4. le résultat de l'appel à identity avec "generics" directement dans print
  5. le résultat de l'appel à identity avec 99 directement dans 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("generics") 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