在Corona中调用外部文件出现错误。

parser.lua 中,我有一个函数:

local function parsefile()
...
end

main.lua 中,我有以下代码:

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

main.luaparser.lua 都在同一个目录下。当我运行 main.lua 时,我会得到以下错误:

attempt to index local 'parser' (a boolean value)

我做错了什么?

点赞
用户1190388
用户1190388

parser.lua 文件中添加以下语句:

return _G

或者,将 parser.lua 文件编辑成以下形式:

local tParseFunctions = {}
function tParseFunctions.parsefile()
    -- ...
end
function tParseFunctions.anotherFunction()
    -- body
end
return tParseFunctions
2013-10-09 08:17:04
用户2186639
用户2186639

你不能从其他模块中访问模块的本地函数。只需从 parser.lua 文件中删除“local”。

2013-10-09 10:46:00
用户1870706
用户1870706

实际上我会这样做:

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

return M

在 main.lua 中:

local parser = require("parser")
parser.parseFile()
2013-10-14 01:08:06