Fonction : Ajouter des éléments
Fait partie de la section Introduction à Luau du Journey Lua de Coddy — leçon 64 sur 73.
Défi
FacileÉteignez votre projet de la leçons précédente (conservez le type Item<T>).
- Écrivez une fonction générique
addItem<T>(inventory: {Item<T>}, name: string, data: T): Item<T>qui crée un élément avecid = #inventory + 1, l'insère dansinventoryavectable.insert, et le renvoie. - Créez un tableau typé vide
weaponsde type{Item<{damage: number}>}. - Utilisez
addItempour ajouter"Iron Sword"avec{damage = 25}, en stockant le résultat danssword. - Utilisez
addItempour ajouter"Fire Axe"avec{damage = 40}, en stockant le résultat dansaxe.
Ensuite, affichez avec print, chacun sur sa propre ligne :
#weaponssword.idsword.nameaxe.idweapons[2].data.damage
Essayez vous-même
-- De la leçon précédente
type Item<T> = {
id: number,
name: string,
data: T,
}
-- Écrivez le code ici
-- 1) addItem<T>(inventory: {Item<T>}, name: string, data: T): Item<T>
-- 2) créez le tableau weapons, ajoutez Iron Sword et Fire Axe
-- 3) affichez les cinq valeurs demandées
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ées7Projet : Gestionnaire de tâches typé
Projet : La structure d'une tâcheFonction pour ajouter une tâche10Projet : Inventaire générique
Projet : Élément d'inventaireFonction : Ajouter des éléments2Types 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 Maps