zoukankan      html  css  js  c++  java
  • 【原创】lua函数--克隆函数clone()

    其他路径:

    CSDN: https://blog.csdn.net/wodehao0808

    微信公众号:程序喵星人

    更多资源和视频教程,QQ:1902686547

    --[[
    -- 深度克隆一个值
    -- example:
    -- 1. t2是t1应用,修改t2时,t1会跟着改变
        local t1 = { a = 1, b = 2, }
        local t2 = t1
        t2.b = 3    -- t1 = { a = 1, b = 3, } == t1.b跟着改变
        
    -- 2. clone() 返回t1副本,修改t2,t1不会跟踪改变
        local t1 = { a = 1, b = 2 }
        local t2 = clone( t1 )
        t2.b = 3    -- t1 = { a = 1, b = 3, } == t1.b不跟着改变
        
    -- @param object 要克隆的值
    -- @return objectCopy 返回值的副本
    --]]
    function clone( object )
        local lookup_table = {}
        local function copyObj( 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[copyObj( key )] = copyObj( value )
            end
            return setmetatable( new_table, getmetatable( object ) )
        end
        return copyObj( object )
    end
    ————————————————
    版权声明:本文为CSDN博主「公众号:程序喵星人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/wodehao0808/article/details/115364159

  • 相关阅读:
    ipad与windows互传文件(不需要安装app)
    为WordPress所有的Tags标签添加Nofollow
    为什么应该用网站来替代电商平台是开网店?
    实体转JSON时,值为null的字段丢失问题
    finally 与 return
    URI, URL, and URN
    HTTP
    EasyPoi 一对多数据导入 null值问题
    热点探测
    elasticsearch数据操作02
  • 原文地址:https://www.cnblogs.com/wodehao0808/p/3955961.html
Copyright © 2011-2022 走看看