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 "end".
maTable = {"Le", "renard", "roux", "est", 'rapide"}
print(table.concat(maTable, " - "))
Résultat: 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"})
Résultat: 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 fournie 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 tri 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 valeurs de retour.
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) Résultat: 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.