struct-copy

所属分类:collect
开发工具:GO
文件大小:0KB
下载次数:1
上传日期:2023-08-22 05:40:43
上 传 者sh-1993
说明:  结构体赋值,结构体复制,字段复制
(Structure assignment, structure copy, field copy)

文件列表:
copy.go (10095, 2023-08-21)
copy_plus.go (9811, 2023-08-21)
copy_test.go (1444, 2023-08-21)
datetime.go (11670, 2023-08-21)
go.mod (48, 2023-08-21)

# struct-copy 结构体复制,代替繁琐的手动复制的方式 **有什么功能?** 1.支持 指针 转 非指针 例如 `` A *string => A string `` 2.支持 非指针 转 指针 例如 `` A string => A *string `` 3.支持 非本地包 转 本地包 例如 `` A xxx.Object => A Object `` 4.支持 本地宝 转 非本地包 例如 `` A Object => A xxx.Object `` 5.支持 多层copy ```bash 例如 X 是以下结构 type X struct { Obj Object //第一层 } type Object struct{ Obj2 Object2 //第二层 } type Object2 struct{ Str string //第三层 } 根据 ``depth``深度来copy ``` **使用说明** 1. 如何下载? ```bash go get github.com/quiet-xu/struct-copy@latest ``` 2. 如何使用? ``` StructCopy(&被赋值体, 赋值体, copy深度(int)) type A1 struct { D *string C []string E *[]C1 A []string B []C1 G C1 F Datetime } type B1 struct { A []string B []C1 E *[]C1 C *[]string D *string F Datetime G C1 } type C1 struct { A string } func TestName(t *testing.T) { var one A1 //要复制的 one.C = []string{"1", "2"} one.D = PStr("1") one.A = []string{"1", "2"} one.B = []C1{{A: "1"}, {A: "2"}} one.E = &[]C1{{A: "1"}, {A: "3"}} one.F = Datetime(time.Now()) one.G = C1{A: "123123"} var two B1 //被赋值的 err := StructCopy(&two, one, 1<<4) t.Log(err, two) } func PStr(a string) *string { return &a } ```

近期下载者

相关文件


收藏者