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, 2, 3}
t:insert(9)
print(t[4]) -- 9, as you\'d expect
    

要回复问题请先登录注册