Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > Golang reflect深拷贝

Golang实现深拷贝reflect原理示例探究

作者:绍纳 nullbody笔记

这篇文章主要为大家介绍了Golang实现reflect深拷贝原理示例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Golang reflect深拷贝

作为CRUD成员,是不是平时reflect使用的很少,一旦使用又不知道如何操作,通过学习本项目,加深对reflect理解。代码就是100行

通过本项目可以学到什么?

reflect各种基本使用

加深对各种数据类型的理解

理解的重点:

reflect.ValueOf()

表示将interface{}转成 reflect.Value结构体,这两个是等价的关系,reflect.Value的底层就是基于 interface{}。我们知道接口类型包含两个:动态类型和动态值,通过reflect.Value可以方便的获取这两个值。

reflect.New(origianl.Type()).Elem()

表示基于类型,new了一个该类型的指针,同时通过解引用Elem()该指针,得到该类型的对象。通过下图对比理解:

以这段代码作为理解范例

代码解析

copyRecursive 函数定义:将src的值,赋值给dest

项目托管地址:https://github.com/gofish2020/deepCopy

以上就是Golang实现深拷贝原理示例探究的详细内容,更多关于Golang 深拷贝的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文