[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: introspection in Lua
- From: Luiz Henrique de Figueiredo <lhf@...>
- Date: Thu, 14 Dec 2000 10:30:37 -0200 (EDT)
>I'm writing routines for saving/restoring Lua table to/from file
See also lua/test/save.lua.
>How can I find out the name of object from the object, i.e
>
>foo={}
>print(?) -- must print 'foo'
If foo is a global variable, then you can search the table of globals:
local obj=get_object_somehow()
name=foreach(globals(), function (i,v) if v==%obj then return i end end)
This will find *one* name for the object, not necessarily the one you expect.
For instance, if you do "xyz=print", then the code above may return "print"
or "xyz". If you want all names, then you can collect them in a table.
Anyway, objects in Lua are really anonymous, much like files in Unix.
They can have several global names or none at all, for they can be fields
of a table. When no other object points to them, they are deleted.
--lhf