lua-users home
lua-l archive

RE: t._NAME etc.

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


Thomas Lauer wrote:
> It seems what I need is a general way to get the printable name of a
> table (assuming that a module resides, one way or another, in a
> table). 
> 
> A quick look at the debug library has not shown me an easy way to do
> that so I'll have to try something homegrown. Or has someone an idea
> as to how to do this? 
In Lua values are anonymous. Sometimes there are way to get a usable
name for a value (like function names for stack tracebacks), but it not
always possible.
However if you have a table and you know it's a module loaded with
require, you can get its name from package.loaded. Here is an example to
do so:
function getmodulename(module)
 for k,v in pairs(package.loaded) do
 if v==module then return k end
 end
 return nil, "no module found"
end
local foo = require 'some.module'
local fooname = assert(getmodulename(foo))
print(fooname)
> some.module

AltStyle によって変換されたページ (->オリジナル) /