lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]



On 07/09/2006, at 1:19 PM, Mark Edgar wrote:

the local statement creates a new local

This code is interesting:

-------
local a = 10

function f ()
  print (a)
end -- f

local a = 20

function g ()
  print (a)
end -- g

local a = 30

f ()  --> 10
g ()  --> 20
--------


It seems that there are actually 3 copies of "a" here, with different values. By the time I call f and g the most recent a is 30, however they seem to be "bound" to the local declarations earlier up.

How does Lua distinguish each "a" from each other? Judging by the earlier error message it makes them upvalues of the functions as it hits the function declarations.

- Nick