Scope access

Chunks are all about scope! You can access any variable defined outside of a scope from within the scope. Think of a scope like a one-way window in a room; from the inside you can see out, but from the outside you can't see in:

foo = 7 -- global scope
do
local bar = 8 -- local scope
print ("foo: " .. foo)
print ("bar: " .. bar)
end

However, you can't access a variable local to a scope outside of that scope:

foo = 7 -- global
do
local bar = 8 -- local
end
print ("foo: " .. foo)
print ("bar: " .. bar) -- error!
-- bar was declared local to the do/end chunk
-- it is trying to be printed at the file or
-- global chunk level, where it does not exist

The same access pattern is also true for multiple nested chunks:

foo = 7 -- global
do
local bar = 8 -- local
do
local x = 9 -- nested local
-- can access foo, bar and x
end
-- can access foo and bar
end
-- can only access foo
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.37.191