Les tables: Fonctions sur les tables.
Lua fournit tout une gamme de fonctions pour le traitement des tables dans sa bibliothèque standard.
Pour obtenir plus de précisions sur une des fonctions présentes ci-desous, cliquez sur celle de votre choix.
Concatène les éléments d'une table.
s = table.concat(maTable, séparateur, start, end)
-- Renvoie les entrées numériques de "maTable", concaténées avec
-- "séparateur", à partir de l'index "start" et se terminant à
-- l'index "fin".
maTable = {"Le", "renard", "roux", "est", 'rapide"}
print(table.concat(maTable, " - ")) --> Le - renard - roux - est - rapide
Retourne la taille d'une table à indexation numérique.
n = table.getn(maTable)
-- Ne concerne que les tables à indexation numérique.
print(table.getn{"Le", "renard", "roux", "est", "rapide", nom = "Nick"})
--> 5
-- L'entrée nom = "Nick" n'est pas une entrée dont l'index est numérique
-- Comme pour les strings, vous pouvez utiliser l'opérateur unaire dièse (#)
maTable = {"Le", "renard", "roux", "est", "rapide", nom = "Nick"})
print(#maTable) --> 5
Insére une valeur donnée dans une table à indexation numérique.
table.insert(maTable, pos, value)
-- Insère la nouvelle valeur "value" à la position "pos" avec une
-- renumérotation de l'ensemble des champs.
maTable = {"Le", "renard", "roux", "est", "rapide"}
table.insert(maTable, 5, "très")
for i, v in ipairs(maTable) do
print(i.." - "..v)
end
--> 1 - Le
-- 2 - renard
-- 3 - roux
-- 4 - est
-- 5 - très
-- 6 - rapide
Retourne une nouvelle table.
Cette fonction retourne une nouvelle table avec tous les paramètres stockés dans les
clés 1, 2, .. etc, et un champ "n" représentant le nombre total de paramètres.
Désolé, mais je n'ai pas trouvé d'exemple simple et significatif, me permettant
d'illustrer cette fonction.
Supprime un élément d'une table à indexation numérique.
val = table.remove(maTable, pos)
-- Supprime l'élément à la position "pos" de maTable et retourne la valeur
-- de l'élément supprimé. Si "pos" est omis, c'est par défaut le dernier
-- élément de maTable, qui sera supprimé.
maTable = {"Le", "renard", "roux", "est", "très", "rapide"}
table.remove(maTable, 5)
for i, v in ipairs(maTable) do
print(i.." - "..v)
end
--> 1 - Le
-- 2 - renard
-- 3 - roux
-- 4 - est
-- 5 - rapide
Trie les éléments d'une table.
table.sort(maTable, f)
-- Trie "maTable" en utilisant la fonction f fourni en tant que fonction de
-- comparaison pour chaque élément.
maTable = {3, 2, 5, 1, 4}
table.sort(maTable)
print(table.concat(maTable, ", ")) --> 1, 2, 3, 4, 5
-- Le trie se fait automatiquement dans un ordre croissant ( opérateur < )
-- Et pour le mettre dans un ordre décroissant (utilisation de f):
table.sort(maTable, function(a,b) return a>b end)
print(table.concat(maTable, ", ")) --> 5, 4, 3, 2, 1
Retourne les éléments de la table donnée.
table.unpack() -- Fonction spéciale possédant plusieurs returns.
-- Elle reçoit un tableau et renvoie les résultats de tous les
-- éléments du tableau, en commençant à l'index 1.
print(unpack{10,20,30}) --> 10 20 30
a, b = unpack{10,20,30}
print(a, b) --> 10 20 (30 sera oublié, car pas affecté)
Les fonctions table.foreach(), table.foreachi() et table.setn() sont à ce jour obsolètes et ne figurent donc pas dans cette liste.