Lua里模拟typeof()获取对象类型
程序员文章站
2022-03-14 11:00:49
...
自定义typeof()函数,获取"对象"类型
function typeof(var)
local _type = type(var);
if(_type ~= "table" and _type ~= "userdata") then
print('---1')
return _type;
end
local _meta = getmetatable(var);
if(_meta ~= nil and _meta._NAME ~= nil) then
print('---2')
return _meta._NAME;
else
print('---3')
return _type;
end
end
XC={}--基类
function XC:new(o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
function XC:extend()
o = {}
setmetatable(o, self)
self.__index = self
return o
end
XBG = XC:extend() --派生类
XBG._NAME='XBG'
b1=XBG:new() --创建对象
print(typeof(b1))
输出:XBG
上一篇: c++中关于二分查找的函数
下一篇: 图——关键路径(代码超详细注释)