Menu
Coddy logo textTech

Ajout et lecture d'éléments

Fait partie de la section Introduction à Luau du Journey Lua de Coddy. Leçon 14 sur 73.

Tu fais déjà croître et rétrécir 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, c’est que Luau vérifie ce que tu insères : insérer une chaîne dans un tableau {number} est signalé pendant que tu écris, au lieu d’être découvert à l’exécution par un joueur déconcerté.

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ément

table.remove(t) retire le dernier élément et te le renvoie ; table.remove(t, 1) retire le premier et décale tout le reste 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 permissive qu’en Lua classique : un index qui ne contient rien, queue[0], queue[-1] ou n’importe quel index au-delà de #queue s’évalue silencieusement à nil. Aucune erreur n’est générée ; vérifie donc la présence de nil avant d’utiliser une valeur dont tu n’es pas certain qu’elle existe.

Voici un outil supplémentaire à ta disposition : table.freeze(t) rend une table en lecture seule à l’exécution : toute tentative ultérieure de la modifier génère une erreur. C’est la solution de Luau pour les données constantes (configuration, listes de niveaux fixes) qui ne doivent jamais changer après leur création.

challenge icon

Défi

Facile

Crée un tableau typé queue: {string} initialisé avec "save" et "load". Ensuite :

  1. ajoute "<code>quit" avec table.insert
  2. insère "<code>help" à la position 1
  3. supprime la commande dernière avec table.remove, en stockant la valeur renvoyée

Enfin, affiche, chacune sur sa propre ligne :

  1. la commande supprimée
  2. combien de commandes restent
  3. la première commande de la file
  4. queue[10] : un emplacement qui ne contient rien

Essayez vous-même

-- Écrire 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
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