Tables en Lua
Qu'est-ce qu'une table en Lua?
Dans le langage Lua, les tables sont des tableaux associatifs. Elles vous permettent de stocker des valeurs que vous pouvez ensuite accéder à l'aide de clés, qui peuvent être à la fois des nombres et des chaînes de caractères.
Création d'une table
Pour créer un objet table, utilisez une expression de constructeur avec des accolades :
t = {}
Pour initialiser une table avec des éléments prédéfinis, insérez les valeurs directement à l'intérieur des accolades, séparées par des virgules :
t = {"element1", "element2", "element3"}
Si vous souhaitez initialiser des valeurs avec des clés assignées, vous pouvez les définir en utilisant des crochets et un signe égal :
t = { ["key1"] = "element1", ["key2"] = "element2", ["key3"] = "element3" }
Pour ajouter des valeurs par la suite, utilisez à nouveau les crochets pour spécifier la clé associée à la valeur :
t[mykey] = myvalue
Il est important de noter qu'une clé peut être de n'importe quel type de données, à l'exception de nil.
Accès aux valeurs dans une table
Après avoir créé une table avec des paires clé-valeur, vous pouvez accéder aux valeurs en utilisant les clés correspondantes avec des crochets comme ceci :
t = {}
t["a"] = 1 -- Nouvelle entrée dans la table où key="a" et value=1
print(t["a"])
Le résultat de ce code sera :
1
Il est également possible d'accéder aux valeurs en utilisant la notation par point :
print(t.a)
Le résultat sera encore une fois :
1
Si aucune clé n'est définie, vous pouvez utiliser un indice numérique :
t = {"a", "b", "c"}
print(t[1])
Le résultat sera :
a
Également, vous pouvez créer une table avec :
letters = {"a", "b", "c"}
print(letters[3])
Le résultat sera :
c
Fonctions sur les tables
Lua fournit une bibliothèque de fonctions pour travailler avec les tables. Ces fonctions sont prêtes à l'emploi et peuvent être utilisées via le mot-clé global table
. Voici quelques-unes des fonctions disponibles :
- table.concat() : Joint les éléments d'une table en une chaîne de caractères.
- table.insert() : Insère un élément à un index spécifié dans une table existante.
- table.move() : Copie des éléments d'une table à une autre.
- table.pack() : Retourne une table composée des valeurs multiples passées en argument.
- table.remove() : Supprime une valeur d'une table.
- table.sort() : Trie une table donnée.
- table.unpack() : Prend une table et retourne ses éléments en tant que valeurs séparées.