如果有多個包含代碼的文件(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