【发布时间】:2015-10-30 22:20:35
【问题描述】:
假设我有以下两个 Lua 文件:
在a.lua:
local x = 5
f = dofile'b.lua'
f()
在b.lua:
local fun = function()
print(x)
end
return fun
然后,如果我在 shell 中运行 luajit a.lua,它会打印 nil,因为在 b.lua 中定义的函数中看不到 x。预期的打印应该是5。但是,如果我将所有内容都放在一个文件中,那么这正是我想要的:
在aa.lua:
local x = 5
local f = function()
print(x)
end
f()
运行luajit aa.lua,它会打印5。
那么为什么在第一种情况下看不到x?
【问题讨论】:
标签: lua