最近更新了lua版本到最新的版本Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio 在运行旧的项目的时候出现了如下错误 xxx: attempt to call a nil value (field 'getn') stack traceback:
网上查了一下,发现也有许多朋友出现了这样的问题,原因是lua在5.1以后的版本去除了table.getn(),这点觉得lua做的不好,兼容性要保证吧。 好吧,这里不吐槽了,既然去除了table.getn(),就应该有新的方式代替,没错新的方式是#mytable
$ lua
Lua
5.3.4 Copyright (C)
1994-
2017 Lua.org, PUC-Rio
>
> mytable = {
1,
2,
3,
4}
> table.getn(mytable)
stdin:
1: attempt
to call
a nil
value (field
'getn')
stack traceback:
stdin:
1:
in main chunk
[C]:
in ?
>
4
好了问题解决了,快把自己旧项目里的getn都改改吧!