欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

相关标签: Lua