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.