如何附加到Lua中的表中

时间:2014-12-11 23:10:05

标签: lua lua-table

我试图找出相当于:

foo = []
foo << "bar"
foo << "baz"

我不想提出递增索引。有一个简单的方法吗?

3 个答案:

答案 0 :(得分:41)

您正在寻找insert功能,可在主库的table部分找到。

foo = {}
table.insert(foo, "bar")
table.insert(foo, "baz")

答案 1 :(得分:33)

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中的语句,需要以某种方式使用它们。

答案 2 :(得分:6)

我个人使用table.insert函数:

table.insert(a,"b");

这使您不必遍历整个表,从而节省了宝贵的资源,如内存和时间。