文件名称:go-clone:深度克隆任何Go数据
文件大小:19KB
文件格式:ZIP
更新时间:2024-02-18 11:40:53
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)