我试图找出相当于:
foo = []
foo << "bar"
foo << "baz"
我不想提出递增索引。有一个简单的方法吗?
答案 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");
这使您不必遍历整个表,从而节省了宝贵的资源,如内存和时间。