访问模块函数时出错

Error accessing a module function

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

attempt to call field 'printText' (a nil value)

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

helloworld.lua

local module = {}

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

return module

main.lua

hello = require("helloworld")

hello.printText()

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

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

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