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 identity correctement réalisée — en tant que generic function :

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

Le <T> après le nom de la fonction déclare un type parameter — un emplacement réservé qui signifie « un certain type, déterminé à chaque call ». À l'intérieur de la signature, vous utilisez T exactement comme un vrai type : 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 tout le secret — cela les lie ensemble. Appelez identity("hello") et le vérificateur détermine que T = string pour cet appel, donc le résultat est un string. Appelez identity(42) et T = number, donc le résultat est un number. Un corps unique, every type, rien n'est perdu.

T n'est qu'un nom conventionnel (raccourci pour "Type") — <Item> ou <Value> fonctionnent tout aussi bien. Et comme toujours en Luau, les crochets d'angle n'existent que pour le vérificateur : au moment de l'exécution, il s'agit de la 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 de identity avec "<code>generics" directement dans print
  5. le résultat de l'appel de 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(the exact text from the 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