我正在和Lua一起玩,点击以下链接:https://www.lua.org/pil/8.html。我有点困惑...
> i = 100
> local i=3
> f=loadstring("i=i+1")
> print(i)
100
> g=function() i=i+1 end
> print(i)
100
> f()
> print(i)
101
> g()
> print(i)
102
我的意思是,为什么f和g都不使用本地i?
您已经在one of your previous questions中找到了答案。
> local i=3
由于您在交互模式下使用Lua解释器,因此本地i
仅在我上面引用的块中可见。因此,f
和g
都增加了全局i
,因为它们从引用的块中看不到本地i
。
考虑将Lua代码写入文件,然后通过例如lua file.lua
执行它们。