访问模块功能时出错

时间:2018-07-14 13:05:23

标签: function module lua require

我在Lua中使用基本模块时遇到问题。我有一个文件“ helloworld.lua”和另一个文件“ main.lua”。我想从第二个文件中的第一个文件调用一个函数。但是我遇到一个错误:

  

试图调用字段'printText'(一个nil值)

我的实际代码如下。有人可以告诉我问题出在哪里吗?

helloworld.lua

local module = {}

function module.printText() 
    print("Hello world")
end

return module

main.lua

hello = require("helloworld")

hello.printText()

1 个答案:

答案 0 :(得分:1)

如评论中所述,这是正确的方法。如果存在冲突的helloworld模块,或者您的lua状态正在运行并且正在修改文件而不启动新文件,则可能会出现问题。

require仅将通过字符串传递的模块加载一次。选中package.loaded["helloworld"]。您可以将其设置为nil,以便require可以再次加载文件:

package.loaded["helloworld"] = nil
hello = require("helloworld") -- will load it for sure