gpt4 book ai didi

lua - 在整个文件的闭包中看不到局部变量?

转载 作者:行者123 更新时间:2023-12-04 17:33:36 24 4
gpt4 key购买 nike

假设我有以下两个 Lua 文件:

a.lua :

local x = 5
f = dofile'b.lua'
f()

b.lua :
local fun = function()
print(x)
end
return fun

然后如果我运行 luajit a.lua在 shell 中它打印 nilxb.lua 中定义的函数中看不到.预期的打印应该是 5 .但是,如果我将所有内容都放在一个文件中,那么这正是我想要的:

aa.lua :
local x = 5
local f = function()
print(x)
end
f()

运行 luajit aa.lua它打印 5 .

那么为什么 x在第一种情况下看不到?

最佳答案

顾名思义,局部变量是块的局部变量。
dofile()从另一个文件加载块。由于它是另一个块,因此局部变量 x 是有意义的。在第一个块中它看不到。

关于lua - 在整个文件的闭包中看不到局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33324376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com