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
非递归版本太牛逼了,不做介绍了自己想看源码的去看吧。
推荐阅读:
