lua深拷贝

2019-02-24  本文已影响1人  亮亮同学
local deepCopy = function(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 index, value in pairs(object) do
            new_table[_copy(index)] = _copy(value)
         end
         return setmetatable(new_table,getmetatable(object))
          
      end 
      return _copy(object)
end
上一篇 下一篇

猜你喜欢

热点阅读