Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
lua中所需文件的函数不';好像没人叫你_Lua_Coronasdk - Fatal编程技术网

lua中所需文件的函数不';好像没人叫你

lua中所需文件的函数不';好像没人叫你,lua,coronasdk,Lua,Coronasdk,我尝试在LUA中使用require关键字来包含一个包含函数的文件,因为我对LUA是新手,首先我尝试了一个简单的打印函数: 全局函数 local globalfunctions = {} function printSomething() print("OOOK") end return globalfunctions 然后我尝试调用这个函数来编写: local m = require "globalfunctions" m.printSomething() 但是出现了一个错误,提

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

全局函数

local globalfunctions = {}

function printSomething()
    print("OOOK")
end

return globalfunctions
然后我尝试调用这个函数来编写:

local m = require "globalfunctions"
m.printSomething()
但是出现了一个错误,提示“尝试调用字段printSomething(nil值)”
我做错了什么?

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

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

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

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


第二:理想情况下,为了使您的模块按照大多数人的期望运行,您应该将函数设置为本地函数,以免污染全局名称空间(可能会覆盖现有变量)。

这不是问题所在。它非常适合作为局部变量(尽管名称有点混乱),因为它是在模块末尾返回的。关于真正的原因,请看我的答案。Cleaner:function globalfunctions.printSomething()。。。结束