尝试调用 nil 值(字段“maxn”)错误

阿尔达·易卜拉欣·格克切
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 编译器上。

我应该改变什么才能让它在我的终端上工作?

保罗·库尔琴科

Lua 5.2 参考手册 - 8.2 - 库中的变化

函数 table.maxn 已弃用。如果你真的需要,用 Lua 写它。

您正在运行比tutorialspoint 更新的Lua 版本。

您可以在脚本顶部添加以下代码,使其在 Lua 5.1+ 版本中工作:

table.maxn = table.maxn or function(t) return #t end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

lua错误:尝试调用nil值(字段'getn')

尝试调用全局“ this”(nil值)

尝试调用方法“ func”(nil值)

lua尝试调用方法“ len”(nil值)

Lua尝试调用字段“ PlayFile”(nil值)

如何解决“尝试调用方法'addMoney'(nil值)”错误?

Lua麻烦:尝试调用全局“解压”(nil值)

Corona SDK(LUA)-尝试调用upvalue'spawnEnemy'(nil值)

Lua:尝试调用全局“ rectangle_draw”(nil值)

尝试将字段称为“读取”(nil值)

错误main.lua:138:尝试调用方法“ checkCollision”(nil值)

LUA嵌入C ++ socket.http中[错误:尝试调用nil值]

错误main.lua:45:尝试调用全局'distanceFormula'(nil值)

Lua错误尝试索引全局nil值

尝试索引全局“矩形”(nil值)错误

尝试用“值”索引 nil

ROBLOX LUA(u) 尝试在数据库上调用 nil 值

当使用load()将字符串用作函数时。它返回“尝试调用nil值”

Lua脚本引发错误“试图调用nil值(字段'deposit')”

尝试索引字段“LocalPlayer”(一个 nil 值)

料滴尝试解码nil值会导致EOF错误

Splash API / lua错误:尝试索引本地元素(nil值)

尝试索引全局“应用程序”(nil值)错误

尝试调用字段“ defaultName”(字符串值)错误

CoreData:尝试获取时错误返回 nil

尝试使用“findFirstChild”错误索引 nil

Roblox 错误,“尝试使用 `GetRankInGroup` 索引 nil”

尝试索引全局“ cv”(nil值)

尝试串联全局“ sceneName”(nil值)