【问题标题】:Missing functions in Table Library in LuaLua 表库中缺少函数
【发布时间】:2023-03-13 02:15:01
【问题描述】:

当我在 Lua 中运行 table.maxn() 或 table.getn() 时,出现以下错误:

> table.maxn(a)
stdin:1: attempt to call a nil value (field 'maxn')
stack traceback:
        stdin:1: in main chunk
        [C]: in ?
> table.getn(a)
stdin:1: attempt to call a nil value (field 'getn')
stack traceback:
        stdin:1: in main chunk
        [C]: in ?

当我尝试探索表格对象的内容时,我得到以下结果。就好像库中缺少一些函数一样。

> for k,v in pairs(table) do
>> print (k)
>> end
remove
insert
move
sort
concat
unpack
pack
>

我正在使用 Lua5.3 - 从下载的 win32 二进制文件 > Lua53.exe

我已经确认我没有以任何方式改变/影响表格对象。以上结果是重新启动Interpreter后得到的。

可能是什么问题?

【问题讨论】:

    标签: lua lua-table


    【解决方案1】:

    您使用的是 lua 5.3,但是:

    • table.getn 在 lua 5.1 中已弃用 (ref)

    • table.maxn 在 lua 5.2 中已弃用 (ref)

    您需要为您所针对的 lua 版本编写有效的代码。

    【讨论】:

    • 在这种情况下,他们需要确保 Programming In Lua 的在线版本要么反映当前情况,要么被删除——该文档中的示例包括 table.getn,因此它们将不起作用。我不得不用谷歌搜索错误消息,最终得到的答案是我知道有更新版本的 PIL,但它们是收费的。在初步评估期间,我无法证明支出的合理性。在最初评估产品时,我希望所有已发布的示例都能正常工作,或者清楚地表明它们仅适用于特定版本,网站上的示例应该总是第一次工作。
    • @grahamhanson “他们”不需要做任何事情。在lua.org docs pagelua.org docs page明确记录了 Programming in Lua 的在线版本:“第三版针对 Lua 5.2。第一版针对 Lua 5.0 和是available online;它仍然很重要。”
    猜你喜欢
    • 2012-06-02
    • 1970-01-01
    • 2019-01-31
    • 2014-01-23
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多