版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
__tostring(a) --字符串输出 ,当调用tostring(obj)的时候,会先查找obj的元方法中的__tostring,如果有就调用,没有就会打印obj的内存地址。
使用方法如下:
LuaModuleNames={}
LuaModuleNames=setmetatable({},{
__tostring=function(LuaModuleNames)
local str=""
for k,v in pairs(LuaModuleNames) do
str=str .. k ..","
end
return str
end
})
function RegModule(modulename,path)
assert(not LuaModuleNames[modulename],"moduleName--> "..modulename .."is already Add")
LuaModuleNames[modulename]=true
end
RegModule("name")
RegModule("we")
print(LuaModuleNames)
print(tostring(LuaModuleNames))