1

如果有多个文件(main.lua)包含代码,我会声明一些全局变量和函数。这些变量和函数是否在所有文件中都是全局的,或者我可以通过任何文件访问它们吗?如果我只使用全局变量和函数,还有什么问题吗?我正在使用导演课程

4

4 回答 4

6

根据定义,全局变量并不坏,但一般来说,您应该只在真正需要共享数据时才使用它们。

否则,您最终会得到不应交互的代码片段,但会以意想不到的方式共享变量(想想临时变量等)。

最好的方法是将所有内容声明为本地,除非您绝对必须共享该变量。

于 2012-06-27T12:03:45.033 回答
2

阅读本文(Corona Labs 官方推荐):

http://www.coronalabs.com/blog/2013/05/28/tutorial-goodbye-globals/

基本上,他们建议:

  • 不要使用全局变量

  • 如果要访问模块之间的变量,请执行以下操作

创建一个新模块来存储“跨模块”变量。

我的数据.lua

--my global space
local M = {}
return M

在其他模块中使用该模块:

main.lua

local myData = require( "mydata" )
myData.myVariable = 10
director:changeScene("other")

其他.lua

local myData = require( "mydata" )
print(myData.myVariable)

结果:10

希望这可以帮助。

于 2013-06-03T08:54:26.840 回答
0

使用 Director,我认为如果你在 main.lua 文件中声明全局变量,你可以在任何地方访问它们,但如果你在模块/场景中声明它们是全局的,它们在其他任何地方都无法访问。尽可能尝试使用局部变量,仅在必要时使用全局变量。

于 2013-05-27T23:14:40.433 回答
-1

如果您有多个 lua 文件,并且它们需要能够使用彼此的信息 - 您应该使用 lua 的模块系统。这就是它的设计目的。

你可以在这里阅读文档: http ://www.lua.org/manual/5.1/manual.html#5.3

于 2012-06-27T13:43:52.533 回答