function table.deepcopy(t, n)
local newT = {}
if n == nil then -- 默认为浅拷贝。。。
n = 1
end
for i,v in pairs(t) do
if n>0 and type(v) == "table" then
local T = table.deepcopy(v, n-1)
newT[i] = T
else
local x = v
newT[i] = x
end
end
return newT
end
非递归版本太牛逼了,不做介绍了自己想看源码的去看吧。
推荐阅读: