Lua 什么时候应该在corona sdk中使用局部和全局函数和变量?

Lua 什么时候应该在corona sdk中使用局部和全局函数和变量?,lua,coronasdk,Lua,Coronasdk,如果有多个文件(main.lua)包含代码,我会声明一些全局变量和函数。这些变量和函数是所有文件中的全局变量和函数,还是我可以通过任何文件访问它们?如果我只使用全局变量和函数,还有什么问题吗?我使用的是director类,从定义上讲,Globals并不坏,但一般来说,您应该只在真正需要共享数据时使用它们 否则,您将得到不应该交互的代码片段,但确实以意外的方式共享一个变量(考虑临时变量等) 最好的方法是将所有内容声明为本地,除非您必须共享变量。全局变量从定义上讲并不坏,但一般来说,您应该只在确实需

如果有多个文件(main.lua)包含代码,我会声明一些全局变量和函数。这些变量和函数是所有文件中的全局变量和函数,还是我可以通过任何文件访问它们?如果我只使用全局变量和函数,还有什么问题吗?我使用的是director类,从定义上讲,Globals并不坏,但一般来说,您应该只在真正需要共享数据时使用它们

否则,您将得到不应该交互的代码片段,但确实以意外的方式共享一个变量(考虑临时变量等)


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

全局变量从定义上讲并不坏,但一般来说,您应该只在确实需要共享数据时使用它们

否则,您将得到不应该交互的代码片段,但确实以意外的方式共享一个变量(考虑临时变量等)


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

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

您可以在此处阅读文档:

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

您可以在此处阅读文档:

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

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

阅读以下内容(科罗纳实验室的官方建议):

基本上,他们建议:

  • 不要使用全局变量

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

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

mydata.lua

--my global space
local M = {}
return M
在其他模块中使用该模块:

在main.lua中

local myData = require( "mydata" )
myData.myVariable = 10
director:changeScene("other")
local myData = require( "mydata" )
print(myData.myVariable)
其他.lua中

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

希望这能有所帮助。

阅读以下内容(科罗纳实验室的官方建议):

基本上,他们建议:

  • 不要使用全局变量

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

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

mydata.lua

--my global space
local M = {}
return M
在其他模块中使用该模块:

在main.lua中

local myData = require( "mydata" )
myData.myVariable = 10
director:changeScene("other")
local myData = require( "mydata" )
print(myData.myVariable)
其他.lua中

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


希望这能有所帮助。

模块系统有几个缺陷-请参阅。另请注意,lua 5.2中已弃用了
模块
功能。模块系统有几个缺陷-请参阅。还要注意的是,lua5.2中已弃用了
模块
函数。