如何解决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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。