Récapitulatif : Les fonctions génériques
Fait partie de la section Introduction à Luau du Journey Lua de Coddy — leçon 62 sur 73.
Défi
MoyenCombinez des alias génériques et des fonctions génériques dans un seul programme.
Définissez un alias de type générique nommé Pair avec deux paramètres de type T et U, décrivant une table avec :
firstde typeTsecondde typeU
Créez une fonction générique nommée makePair qui déclare T et U, accepte first: T et second: U, et les renvoie empaquetés dans un Pair<T, U>.
Créez une fonction générique nommée describePair qui déclare T et U, accepte un pair: Pair<T, U>, et renvoie la chaîne ({first}, {second}) construite avec une interpolation de chaîne (type de retour string).
Ensuite :
- créez
playerScorede typePair<string, number>en appelantmakePair("Nova", 87) - créez
levelDonede typePair<number, boolean>en appelantmakePair(3, true) - affichez
playerScore.first - affichez
playerScore.second - affichez
describePair(playerScore) - affichez
describePair(levelDone) - affichez
describePair(makePair("Luau", 2026))sur une seule ligne
Essayez vous-même
-- Écrivez le code ici
-- 1) définir le type Pair<T, U> = {first: T, second: U}
-- 2) définir makePair<T, U>(first: T, second: U): Pair<T, U>
-- 3) définir describePair<T, U>(pair: Pair<T, U>): string
-- retournant `({pair.first}, {pair.second})`
-- 4) construire playerScore ("Nova", 87) et levelDone (3, true),
-- puis afficher les cinq lignes requises
Toutes les leçons de Introduction à Luau
1Premiers pas avec Luau
Qu'est-ce que Luau ?Pourquoi utiliser Luau ?Votre premier code LuauVérification de type et modes d'erreurRécapitulatif : Introduction à Luau4Travailler avec les fonctions
Typage des paramètres et valeurs de retourTypage des fonctions anonymesFonctions ne retournant rienParamètres optionnelsValeurs par défaut des paramètresFonctions variadiquesDéfinition des types de fonctionsRécapitulatif : Fonctions typées2Types fondamentaux
Types de base : num, str, boolLe type 'any' : la porte de sortieLe type 'unknown'Types Nil et optionnelsL'inférence de type en actionAnnotations explicites de typeRécapitulatif : Pratique des types fondamentaux5Alias, unions et intersections
Alias de types pour les types primitifsTypes unionsTravailler avec les types unionsTypes littérauxTypes intersectionsCombinaison d'alias de typesRécapitulatif : Combinaisons de types avancées3Tables typées : Tableaux et Maps
Tableaux typésAjout et lecture d'élémentsQu'est-ce qu'un type Map ?Déclaration et accès aux MapsItération sur les tablesTables à formes mixtesTableaux typés multidimensionnelstable.unpack et VarargsRécapitulatif : Tableaux et Maps6Typage des structures de tables
Annotations de structures en ligneAlias de types pour les structuresPropriétés optionnellesStructures vs tables libresExtension de structuresAjout de méthodes aux structuresMéthodes avec Self et deux-pointsRécapitulatif : Définir des structures de tables9Les génériques : Un premier aperçu
Le problème résolu par les génériquesUne fonction d'identité génériqueUtiliser une fonction génériqueLes tableaux génériquesLes alias de types génériquesRécapitulatif : Les fonctions génériques