代码之家  ›  专栏  ›  技术社区  ›  clüles

如果脚本名为“table.Lua”,Lua要求出错?

  •  1
  • clüles  · 技术社区  · 7 年前

    尝试复制 this simple Lua example 第二 post),我遇到了以下奇怪的问题:

    桌子卢阿 “(代替” funcs。卢阿 第二个文件名为“ “如示例所示。

    t尝试调用字段“myfunc”(零值) “(好像require语句被忽略了;但是path等都是有序的)。

    经过两个小时的尝试和寻找信息后,我或多或少有预感地将第一个文件重命名为“ 桌子卢阿 tabble。卢阿 “,然后一切都很快如期进行。重命名为,例如。” “也会起作用。

    桌子 “是一个保留的Lua字,但我检查的所有参考文献都没有将其列为保留Lua字。

    这是怎么回事?

    我使用的是LuaForWindows v5.1.4-46,附带SciTE编辑器/IDE(v.1.75)。

    谢谢你的提示。

    1 回复  |  直到 7 年前
        1
  •  3
  •   nobody    7 年前

    标准库 math io string table 在Lua解释器中预定义(并预加载)。因为需要按名称缓存模块 require "table" 将返回标准 而不是加载自己的库 桌子

    解决这个问题的一个好方法是创建一个文件夹并将库文件放在其中。如果调用文件夹 mylib 然后 require "mylib.table"

    或者,如果您只需要加载一次文件,而不需要 require loadfile :更改 需要“表格” loadfile "./table.lua" () ./table.lua 应该是文件的完整(相对较好)路径。)