Как добавить к таблице в Lua
Я пытаюсь выяснить эквивалент:
foo = []
foo << "bar"
foo << "baz"
Я не хочу придумывать инкрементный индекс. Существует ли простой способ сделать это?
3 ответов
foo = {}
foo[#foo+1]="bar"
foo[#foo+1]="baz"
это работает, потому что #
оператор вычисляет длину списка. Пустой список имеет длину 0, и т. д.
Если вы используете Lua 5.3+, то вы можете сделать почти точно то, что вы хотели:
foo = {}
setmetatable(foo, { __shl = function (t,v) t[#t+1]=v end })
_= foo << "bar"
_= foo << "baz"
выражения не являются операторами в Lua, и их нужно как-то использовать.
Я лично использую table.insert
функция:
table.insert(a,"b");
это избавляет вас от необходимости итерации по всей таблице, поэтому экономя ценные ресурсы, такие как память и время.