我正试图找出等效于:
foo = []
foo << "bar"
foo << "baz"
我不想自己编写递增索引,有没有简单的方法可以实现?
您正在寻找位于主要库的table
部分中的insert
函数。
foo = {}
table.insert(foo, "bar")
table.insert(foo, "baz")
foo = {}
foo[#foo+1]="bar"
foo[#foo+1]="baz"
#
运算符计算列表的长度。空列表的长度为0,依此类推。foo = {}
setmetatable(foo, { __shl = function (t,v) t[#t+1]=v end })
_= foo << "bar"
_= foo << "baz"
在Lua中,表达式不是语句,需要以某种方式使用。
table.insert
稍微快一些。 - Tim__shl
函数返回self
,则可以进行链式压入操作,例如_= foo << "bar" << "baz"
。 - Neil E. Pearson我个人会使用table.insert
函数:
table.insert(a,"b");
这将使您免于必须遍历整个表格,从而节省宝贵的资源,如内存和时间。