文档详情

lua 工具类(二).docx

发布:2017-07-19约1.92万字共17页下载文档
文本预览下载声明
 HYPERLINK /newlist/p/3595761.html lua 工具类(二) local tonumber_ = tonumber function tonumber(v, base) return tonumber_(v, base) or 0 end function toint(v) return math.round(tonumber(v)) end function tobool(v) return (v ~= nil and v ~= false) end function totable(v) if type(v) ~= table then v = {} end return v end function clone(object) local lookup_table = {} local function _copy(object) if type(object) ~= table then return object elseif lookup_table[object] then return lookup_table[object] end local new_table = {} lookup_table[object] = new_table for key, value in pairs(object) do new_table[_copy(key)] = _copy(value) end return setmetatable(new_table, getmetatable(object)) end return _copy(object) end function class(classname, super) local superType = type(super) local cls if superType ~= function and superType ~= table then superType = nil super = nil end if superType == function or (super and super.__ctype == 1) then -- inherited from native C++ Object cls = {} if superType == table then -- copy fields from super print (superTyper is table); for k,v in pairs(super) do cls[k] = v end cls.__create = super.__create cls.super = super else cls.__create = super cls.ctor = function() end end cls.__cname = classname cls.__ctype = 1 function cls.new(...) local instance = cls.__create(...) -- copy fields from class to native object for k,v in pairs(cls) do instance[k] = v end instance.class = cls instance:ctor(...) return instance end else -- inherited from Lua Object if super then cls = {} setmetatable(cls, {__index = super})
显示全部
相似文档