Ajout et lecture d'éléments
Fait partie de la section Introduction à Luau du Journey Lua de Coddy. Leçon 14 sur 73.
Vous agrandissez et réduisez déjà les tables Lua avec table.insert et table.remove — les deux fonctionnent exactement de la même manière sur les tableaux typés. La différence est que Luau vérifie désormais ce que vous insérez : ajouter une chaîne dans un tableau de type {number} est signalé au moment de la saisie, et non découvert par un joueur confus lors de l'exécution.
local queue: {string} = {"save", "load"}
table.insert(queue, "quit") -- ajoute à la fin
table.insert(queue, 1, "help") -- insère à la position 1, en décalant le reste
local last = table.remove(queue) -- supprime ET renvoie le dernier élémenttable.remove(t) retire le dernier élément et vous le renvoie ; table.remove(t, 1) retire le premier et décale tout vers le bas. Comme le tableau est typé {string}, Luau sait que la valeur renvoyée est une chaîne.
La lecture est tout aussi tolérante qu'en Lua classique : un indice qui ne contient rien — queue[0], queue[-1], ou tout ce qui dépasse #queue — s'évalue silencieusement à nil. Aucune erreur n'est levée, pensez donc à vérifier la présence de nil avant d'utiliser une valeur dont vous n'êtes pas certain de l'existence.
Outil supplémentaire pour votre boîte à outils : table.freeze(t) rend une table en lecture seule à l'exécution — toute tentative ultérieure de la modifier lève une erreur. C'est la réponse de Luau pour les données constantes (configuration, listes de niveaux fixes) qui ne doivent jamais changer après leur création.
Défi
FacileCréez un tableau typé queue: {string} initialisé avec "save" et "load". Ensuite :
- ajoutez
"<code>quit" à la fin avectable.insert - insérez
"<code>help" à la position 1 - supprimez la dernière commande avec
table.remove, en stockant la valeur retournée
Enfin, affichez, chacun sur sa propre ligne :
- la commande supprimée
- combien de commandes il reste
- la première commande de la file (queue)
queue[10]— un emplacement qui ne contient rien
Essayez vous-même
-- Écrivez le code ici
-- 1) déclarer queue : {string} avec "save" et "load"
-- 2) ajouter le texte exact des instructions, insérer le texte exact des instructions à la position 1
-- 3) supprimer la dernière commande, puis afficher les quatre valeurs
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
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 MapsEntraînez-vous par vous-même : Compilateur Lua en ligne