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
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...