访问模块函数时出错
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
我在 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