在parser.lua
我有一个功能:
local function parsefile()
...
end
在main.lua
我有以下内容:
local parser = require "parser"
parser.parsefile()
main.lua
和parser.lua
都在同一目录中。当我运行main.lua
时,我收到以下错误:
尝试索引本地'解析器'(布尔值)
我做错了什么?
答案 0 :(得分:0)
在parser.lua
return _G
或者,也可以将parser.lua
编辑为:
local tParseFunctions = {}
function tParseFunctions.parsefile()
-- ...
end
function tParseFunctions.anotherFunction()
-- body
end
return tParseFunctions
答案 1 :(得分:0)
您无法从其他模块访问模块的本地功能。只需从parser.lua文件中删除“local”
即可答案 2 :(得分:0)
其实我会这样做:
-- parser.lua
local M = {}
function M.parseFile()
...
end
return M
在main.lua:
local parser = require("parser")
parser.parseFile()