Lua 什么时候应该在corona sdk中使用局部和全局函数和变量?
如果有多个文件(main.lua)包含代码,我会声明一些全局变量和函数。这些变量和函数是所有文件中的全局变量和函数,还是我可以通过任何文件访问它们?如果我只使用全局变量和函数,还有什么问题吗?我使用的是director类,从定义上讲,Globals并不坏,但一般来说,您应该只在真正需要共享数据时使用它们 否则,您将得到不应该交互的代码片段,但确实以意外的方式共享一个变量(考虑临时变量等)Lua 什么时候应该在corona sdk中使用局部和全局函数和变量?,lua,coronasdk,Lua,Coronasdk,如果有多个文件(main.lua)包含代码,我会声明一些全局变量和函数。这些变量和函数是所有文件中的全局变量和函数,还是我可以通过任何文件访问它们?如果我只使用全局变量和函数,还有什么问题吗?我使用的是director类,从定义上讲,Globals并不坏,但一般来说,您应该只在真正需要共享数据时使用它们 否则,您将得到不应该交互的代码片段,但确实以意外的方式共享一个变量(考虑临时变量等) 最好的方法是将所有内容声明为本地,除非您必须共享变量。全局变量从定义上讲并不坏,但一般来说,您应该只在确实需
最好的方法是将所有内容声明为本地,除非您必须共享变量。全局变量从定义上讲并不坏,但一般来说,您应该只在确实需要共享数据时使用它们 否则,您将得到不应该交互的代码片段,但确实以意外的方式共享一个变量(考虑临时变量等)
最好的方法是将所有内容声明为本地,除非您绝对必须共享变量。如果您有多个lua文件,并且它们需要能够使用彼此的信息,那么您应该使用lua的模块系统。这就是它的设计目的 您可以在此处阅读文档:
如果您有多个lua文件,并且它们需要能够使用彼此的信息,那么您应该使用lua的模块系统。这就是它的设计目的 您可以在此处阅读文档:
使用Director,我认为如果在main.lua文件中声明变量为全局变量,则可以在任何地方访问它们,但如果在模块/场景中声明变量为全局变量,则无法在其他任何地方访问它们。尽可能使用局部变量,仅在必要时使用全局变量。使用Director,我认为如果在main.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
希望这能有所帮助。阅读以下内容(科罗纳实验室的官方建议):
基本上,他们建议:
- 不要使用全局变量
- 如果要访问模块之间的变量,请执行以下操作
--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中已弃用了模块
函数。