lua-users home
lua-l archive

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

Patrick Donnelly wrote:
I'm pretty sure this has to do with tables remembering "old" keys.
This is important for next() when you try to check the next key/value
pair 'after' removing the last...


for k in pairs(t) do t[k] = nil end

Note that if you try to call next() with an invalid key (one that was
never in the table), you get an error raised.

While assigning a new table does "fix" it, there probably should be
some sort of collection of these unused keys.

Note: I'm sure some of what I said is technically misleading (due to
my misunderstanding), but I hope the general idea is understood.

i may be wrong but i think that

somevar = nil

is actually defining a variable; try this ...

a = nil
function abc() print(a) end
a = 'value is not nil'
a = nil
a = 'value is set again'

so, in your case, once you have a t[10] defined you can set it's value to nil, but that does not dispose the variable, only its value


                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
     tel: 038 477 53 69 | fax: 038 477 53 74 |