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