`
chenpeilei2003
  • 浏览: 187397 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lua里模拟typeof()获取对象类型

Lua 
阅读更多
自定义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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics