1

parser.lua我有一个功能:

local function parsefile()
...
end

main.lua我有以下内容:

local parser = require "parser"
parser.parsefile()

两者main.luaparser.lua在同一个目录中。当我运行时,main.lua我收到以下错误:

尝试索引本地“解析器”(布尔值)

我究竟做错了什么?

4

3 回答 3

0

您无法从其他模块访问模块的本地功能。只需从 parser.lua 文件中删除“本地”

于 2013-10-09T10:46:00.613 回答
0

将以下语句添加到您的parser.lua

return _G

或者,或者,将其编辑为parser.lua

local tParseFunctions = {}
function tParseFunctions.parsefile()
    -- ...
end
function tParseFunctions.anotherFunction()
    -- body
end
return tParseFunctions
于 2013-10-09T08:17:04.033 回答
0

其实我会这样做:

-- parser.lua
local M = {}
function M.parseFile()
  ...
end

return M

在 main.lua 中:

local parser = require("parser")
parser.parseFile()
于 2013-10-14T01:08:06.393 回答