![](/img/trans.png)
[英]Lua program error attempt to call field 'getclient' (a nil value)
[英]Getting attempt to call a nil value (field 'maxn') error
mytable = setmetatable({1,2,3}, {
__add = function(mytable, newtable)
for i = 1, table.maxn(newtable) do
table.insert(mytable, table.maxn(mytable)+1, newtable[i])
end
return mytable
end
})
secondtable = {4,5,6}
mytable = mytable + secondtable
for k,v in ipairs(mytable) do
print(k,v)
end
我在终端中运行此错误:
lua: metatables4.lua:6: attempt to call a nil value (field 'maxn')
stack traceback:
metatables4.lua:6: in metamethod '__add'
metatables4.lua:15: in main chunk
[C]: in ?
但是,当我尝试在tutorialspoint编译器上运行它时,它将运行。
1 1
2 2
3 3
4 4
5 5
6 6
这应该是我的输出。 我无法在这里确切地找出问题所在,因为它运行在指向地面lua编译器的tutorialspoint编码上。
要在终端上正常工作,我应该更改什么?
不建议使用函数table.maxn。 如果确实需要,请用Lua编写。
您正在运行的Lua版本比tutorialspoint更新。
您可以在脚本顶部添加以下代码,以使其在Lua 5.1+版本中起作用:
table.maxn = table.maxn or function(t) return #t end
使用#newtable
代替table.maxn(newtable)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.