1
Q
局部變量的Lua
A
回答
8
是的,因爲它是本地chunk,它是在創建。
Lua的處理塊與參數(見§3.4.11)可變數量的匿名函數體。因此,塊可以定義局部變量,接收參數和返回值。而且,這樣的匿名函數被編譯爲一個名爲_ENV的外部局部變量的範圍(參見§2.2)。結果函數總是隻有_ENV作爲唯一的upvalue,即使它不使用該變量。
考慮這個例子:
-- main.lua
require 'other'
print(x, y)
-- other.lua
local x = 5
y = 10
這將打印出nil, 10
,因爲x
是本地的塊,而y
被指派爲的upvalue無論哪個環境 the 塊裝載在
參見:
而且注意,環境 Lua5.1和Lua5.2之間改變的語義:
相關問題
- 1. 更改lua中的局部變量w /全局函數
- 2. lua表全局/局部變得困惑
- 3. Lua函數選取局部變量而不是全局
- 4. 局部變量的全局變量
- 5. 的Lua:問題與「局部變量=要求(」我的LIB「)
- 6. 局部變量
- 7. 局部變量
- 8. 局部變量
- 9. 局部變量
- 10. 局部變量
- 11. Lua的錯誤嘗試在局部變量
- 12. JS全局變量到局部變量
- 13. PowerShell全局變量局部變量
- 14. 局部變量與全局變量
- 15. 局部未定義的局部變量
- 16. 讓Lua覆蓋全局變量
- 17. Lua在遞歸函數中聲明局部變量
- 18. R:局部/全局變量
- 19. [R局部全局變量
- 20. 全局和局部變量
- 21. 全局和局部變量
- 22. PyGame局部變量
- 23. UnboundLocalError局部變量
- 24. C#局部變量
- 25. 局部變量C#
- 26. SSIS - 局部變量
- 27. MASM32局部變量?
- 28. 與局部變量
- 29. UnboundLocalError:局部變量
- 30. SQL局部變量
你真的不能定義一個函數的變量之外,因爲腳本編譯爲[函數體(https://www.lua.org/manual/5.3/manual.html#3.3 0.2)。 –