lua-table.insert不起作用

问题描述

| 为什么ѭ0在Lua不起作用? (我想在表的末尾附加值9)
t = {1,2,3}
table.insert(t,9)  -- works (appends 9 to end of table t)
t:insert(9)         -- does NOT work
我一般认为 Lu2ѭ等于Lua中to3ѭ     

解决方法

的确,ѭ3仅是ѭ2syn的语法糖,第二种语法却不是您所拥有的。倒想一下: 您尝试的函数调用是“ 0” 所以你说的语法规则是
t.insert(t,9)
但是工作函数调用是
table.insert(t,9)
看看最后两个不一样吗?因此,您的问题的答案是insert()不是
t
中包含的函数,而是位于\“ table \”中。     ,由于
table
方法尚未与
t
相关联,因此您要么必须通过
table.insert
语法直接调用它们,要么将
t
上的元表定义为
table
,例如:
> t = {1,2,3}
> setmetatable(t,{__index=table})
> t:insert(9)
> print (t[4])
9
    ,您正在尝试在表中调用一个名为insert的条目,但是在表t中没有任何条目。如果您希望它起作用,您可以将插入项设置为table.insert。
t = {insert = table.insert,1,3}
t:insert(9)
print(t[4]) -- 9,as you\'d expect