J'essaie de trouver l'équivalent de:
foo = []
foo << "bar"
foo << "baz"
Je ne veux pas avoir à créer un index incrémentiel. Y a-t-il un moyen facile de faire ceci?
Vous recherchez la fonction insert
qui se trouve dans la section table
de la bibliothèque principale.
foo = {}
table.insert(foo, "bar")
table.insert(foo, "baz")
foo = {}
foo[#foo+1]="bar"
foo[#foo+1]="baz"
Cela fonctionne car l'opérateur #
Calcule la longueur de la liste. La liste vide a une longueur de 0, etc.
Si vous utilisez Lua 5.3+, vous pouvez faire presque exactement ce que vous vouliez:
foo = {}
setmetatable(foo, { __shl = function (t,v) t[#t+1]=v end })
_= foo << "bar"
_= foo << "baz"
Les expressions ne sont pas des déclarations en Lua et doivent être utilisées d'une manière ou d'une autre.
Je me servirais personnellement du table.insert
une fonction:
table.insert(a,"b");
Cela vous évite d'avoir à parcourir la table entière, ce qui vous permet d'économiser des ressources précieuses telles que la mémoire et le temps.