如何在Lua中附加到表

如何在Lua中附加到表,lua,lua-table,Lua,Lua Table,我正试图找出以下等价物: foo = [] foo << "bar" foo << "baz" foo=[] foo您正在查找主库的表部分中的插入函数 foo = {} table.insert(foo, "bar") table.insert(foo, "baz") 这是因为#操作符计算列表的长度。空列表的长度为0,以此类推 如果您使用的是Lua 5.3+,那么您几乎可以完全按照自己的意愿进行操作: foo = {} setmetatable(foo, { __sh

我正试图找出以下等价物:

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

foo您正在查找主库的
部分中的
插入
函数

foo = {}
table.insert(foo, "bar")
table.insert(foo, "baz")
这是因为
#
操作符计算列表的长度。空列表的长度为0,以此类推

如果您使用的是Lua 5.3+,那么您几乎可以完全按照自己的意愿进行操作:

foo = {}
setmetatable(foo, { __shl = function (t,v) t[#t+1]=v end })
_= foo << "bar"
_= foo << "baz"
foo={}
setmetatable(foo,{{函数(t,v)t[#t+1]=v end})

_=foo我个人会使用
表。插入
函数:

table.insert(a,"b");

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

整个文档都可以在网上找到,这非常有帮助。谷歌一直在向我指出这基本上是无用的。您也不需要分号,但如果愿意,您可以使用它们。@rsethc在堆栈溢出的历史记录中的某个时候,两个“重复”答案肯定会同时发布(我打赌我们也不会是最后一个发布的)。公平地说,我确实添加了一些关于节省内存/时间的信息。它比
表略快。insert
。值得注意的是,如果
\uuushl
函数返回
self
,则可能会被链接,例如
\uuuo=foo
table.insert(a,"b");