我刚从Lua开始,我遇到了访问局部变量的函数问题。只是尝试访问变量的天真方法似乎不起作用。
function fn1()
print(foo)
end
local foo = "Hello, world"
fn1() -- Prints nil
在这种情况下,我可以将foo
传递给函数(如fn(foo)
中所示),但对于更复杂的情况,这会变得棘手。
function fn1()
fn2()
end
function fn2()
print(foo)
end
local foo = "Hello, world"
fn1(foo) -- Also prints nil
从内部函数内部访问foo
的正确方法是什么?将foo
传递给fn1
然后传递给fn2
会有效,但如果涉及多个变量和函数,则会变得困难。我宁愿不让foo
全球化。有没有其他方法可以使这项工作?
答案 0 :(得分:2)
你可以the following将本地放在两个函数的范围内。
local foo = "Hello, world"
function fn1()
fn2()
end
function fn2()
print(foo)
end
fn1()