如果有多个包含代码的文件(main.lua),并且我声明了全局变量和函数。这些变量和函数在所有文件中是全局还是可以通过任何文件访问它们?如果我仅使用全局变量和函数,那么是否存在任何问题?我正在使用导演类当在corona sdk中使用局部和全局函数和变量时?
1
A
回答
6
全局定义并不差,但一般而言,只有在您真的需要共享数据时才应使用它们。否则,你会得到一些不应该交互的代码片段,但是会以一种意想不到的方式共享一个变量(想象一下临时变量等等)。
最好的方法是声明一切本地,除非你绝对必须共享变量。
-1
如果你有多个lua文件,他们需要能够使用另一个的信息 - 你应该使用lua的模块系统。这是它的设计目的。
,你可以在这里阅读的文档:使用Director http://www.lua.org/manual/5.1/manual.html#5.3
0
,我觉得如果你声明变量在main.lua文件全局的,你可以在任何地方访问它们,但如果你把它们声明全局模块中的/他们无法在任何其他地方访问它们。尝试尽可能使用局部变量,只有在需要使用它们时才使用全局变量。
2
阅读本(官方科罗纳实验室的建议):
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
希望这有助于。
相关问题
- 1. 全局和局部变量
- 2. 全局和局部变量
- 3. 全局变量和函数
- 4. 全局变量和函数
- 5. Javascript中的全局和局部变量
- 6. 全局和局部变量问题
- 7. Python的全局和局部变量
- 8. 全局和局部变量的问题
- 9. java全局全局变量和用户全局变量
- 10. jquery使局部变量在全局函数中
- 11. C++全局变量和函数
- 12. 全局变量和列表函数
- 13. 如何在corona sdk中转发声明全局变量
- 14. 访问全局函数的变量在局部函数
- 15. Django全局函数和变量
- 16. 从函数传递局部变量变为全局变量
- 17. SailsJS和全局函数,变量
- 18. 生成函数和全局变量
- 19. 我的脚本中的全局变量和局部变量
- 20. javascript中的局部变量和全局变量
- 21. 当使用全局变量
- 22. 循环中的局部变量和全局变量
- 23. 避免在Javascript中使用全局变量和函数
- 24. Jquery全局变量赋值和在javascript函数中使用
- 25. R:局部/全局变量
- 26. 全局和局部函数和跨类变量。怎么样?我做对了吗?
- 27. 函数问题和局部变量
- 28. Python局部变量和函数
- 29. [R局部全局变量
- 30. 调用PHP函数和使用PHP函数内部全局变量
模块系统有几个缺陷 - 请参阅http://lua-users.org/wiki/LuaModuleFunctionCritiqued。另请注意,lua 5.2中已经不推荐使用'module'函数。 – kikito