普通拷贝table
--拷贝表格
local function tableCopy(tb)
local copy={}
for k,v in ipairs(tb) do
if type(v)=="table" then
for m,n in ipairs(v) do
copy[k][m]=n
end
else
copy[k]=v
return copy
end
深层拷贝table
--深度拷贝Table
function DeepCopy(obj)
local InTable={}
local function Func(obj)
--判断表中是否有表
if type(obj)~="table" then return obj end
local NewTable={} InTable[obj]=NewTable
--若表中有表,则先把表给InTable,再用NewTable去接收内嵌的表
for k,v in pairs(obj) do
--把旧表的key和Value赋给新表
NewTable[Func(k)]=Func(v)
end
return setmetatable(NewTable, getmetatable(obj))
--赋值元表
end
return Func(obj)
--若表中有表,则把内嵌的表也复制了
end
欢迎大家来学习

385

被折叠的 条评论
为什么被折叠?



