如果有多个文件(main.lua)包含代码,我声明一些变量和函数全局。这些变量和函数在所有文件中是全局的,还是可以通过任何文件访问它们?如果我只使用全局变量和函数,还有什么问题吗?我正在使用导演班
答案 0 :(得分:6)
根据定义,Globals并不坏,但一般情况下,只有在真正需要共享数据时才应使用它们。
否则,您最终会得到不应该交互的代码片段,但会以意想不到的方式共享变量(想想临时变量等)。
除非绝对必须共享变量,否则最好的方法是将所有内容声明为本地。
答案 1 :(得分:2)
阅读本文(Corona Labs官方推荐):
http://www.coronalabs.com/blog/2013/05/28/tutorial-goodbye-globals/
基本上,他们建议:
请勿使用全局变量
如果要访问模块之间的变量,请执行以下操作
创建一个新模块来存储“跨模块”变种。
mydata.lua
--my global space
local M = {}
return M
在其他模块中使用该模块:
在 main.lua
中local myData = require( "mydata" )
myData.myVariable = 10
director:changeScene("other")
在 other.lua
中local myData = require( "mydata" )
print(myData.myVariable)
结果:10
希望这有帮助。
答案 2 :(得分:0)
使用Director,我认为如果你在main.lua文件中声明变量global,你可以在任何地方访问它们,但如果你在模块/场景中声明它们是全局的,那么它们在任何其他地方都无法访问。尽可能尝试使用局部变量,只有在必要时才使用全局变量。
答案 3 :(得分:-1)
如果你有多个lua文件,并且他们需要能够使用彼此的信息 - 你应该使用lua的模块系统。这就是它的设计目标。
你可以在这里阅读文档: http://www.lua.org/manual/5.1/manual.html#5.3