【文件属性】:
文件名称:go-clone:深度克隆任何Go数据
文件大小:19KB
文件格式:ZIP
更新时间:2021-01-28 17:54:13
go utility algorithm immutable clone
go-clone:深度克隆任何Go数据
包clone提供了对任何Go数据进行深度克隆的功能。 它还提供了一个包装器,以保护指针免受任何意外的突变。
Clone / Slowly可以克隆任何结构的未导出字段。 明智地使用此功能。
安装
使用go get安装此软件包。
go get github.com/huandu/go-clone
用法
Slowly Clone
如果要克隆任何Go值,请使用Clone 。
t := & T { ... }
v := clone . Clone ( t ).( * T )
reflect . DeepEqual ( t , v ) // true
为了性能起见, Clone不处理包含指针周期的值。 如果我们需要克隆此类值,请改用Slowly 。
type ListNode struct {
Data int
Next * ListNode
}
node1 := & ListNode {
Data : 1 ,
}
node2 := & ListNode {
Data : 2 ,
}
node3 := & Lis
【文件预览】:
go-clone-master
----mapiter.go(609B)
----structtype_sample_test.go(418B)
----clone_benchmark_test.go(486B)
----go.mod(87B)
----headers.go(240B)
----go.sum(889B)
----wrapper_sample_test.go(805B)
----structtype_test.go(3KB)
----wrapper_benchmark_test.go(730B)
----.travis.yml(409B)
----LICENSE(1KB)
----README.md(4KB)
----clone.go(9KB)
----clone_sample_test.go(516B)
----mapiter_go112.go(250B)
----wrapper_test.go(2KB)
----wrapper.go(4KB)
----.gitignore(345B)
----clone_test.go(9KB)
----structtype.go(5KB)