似乎没有调用lua中所需文件的功能

时间:2013-10-03 16:00:39

标签: lua corona

我正在尝试在LUA中使用require关键字来包含一个带有函数的文件,因为我是LUA的新手,我首先尝试了一个简单的打印函数:

globalfunctions.lua

local globalfunctions = {}

function printSomething()
    print("OOOK")
end

return globalfunctions

然后我试着写这个函数写:

local m = require "globalfunctions"
m.printSomething()

但是发生错误,说“尝试调用字段printSomething(nil value)” 我做错了什么?

2 个答案:

答案 0 :(得分:2)

问题是您声明了一个函数,但是没有将它添加到您的模块中。

要将函数实际存储在require返回的模块中,您需要将其添加到模块末尾返回的表中。

globalfunctions.printSomething = printSomething

请注意,globalfunctions是一个欺骗性的名称选择,因为a)它是一个局部变量本身b)它将包含的函数也不是全局的,它们包含在你的模块中

其次:理想情况下,为了使您的模块像大多数人期望的那样运行,您可以将函数设置为本地函数,以便不污染全局命名空间(可能会覆盖现有变量)。

答案 1 :(得分:1)

您将全局函数设置为本地值,这意味着它只能在本地运行,尝试将本地函数更改为全局函数。