当前位置: 首页> 健康> 知识 > golang使用 copier对象复制时进行类型转化

golang使用 copier对象复制时进行类型转化

时间:2025/7/11 23:08:41来源:https://blog.csdn.net/zhtsuc/article/details/140968356 浏览次数:0次

问题描述

在后端我们经常会在 entity 和 view 之间进行复制转换为可以发送给前端的数据

比如 time 对象在下送的时候,我们希望能显示经过格式化过的目标字符串格式,这里我们可以使用自定义的 converter,主要是定义 src 和 dst 类型,以及实现转换方法。

然后在复制的时候带上自定义 converter 即可,极大的提高了转换复制的效率。

func main() {var (user = User{Name: "Jinzhu", Age: 18, Role: "Admin", Salary: 200000, CreateAt: time.Now()}//users     = []User{{Name: "Jinzhu", Age: 18, Role: "Admin", Salary: 100000}, {Name: "jinzhu 2", Age: 30, Role: "Dev", Salary: 60000}}employee = Employee{Salary: 150000}//employees = []Employee{})converter := copier.TypeConverter{SrcType: time.Time{},DstType: copier.String,Fn: func(src interface{}) (dst interface{}, err error) {srcTime, ok := src.(time.Time)fmt.Println(srcTime)if !ok {return "", nil}return srcTime.Format(time.RFC3339), nil}}copier.CopyWithOption(&employee, &user, copier.Option{Converters: []copier.TypeConverter{converter}},)fmt.Printf("%#v \n", employee)}

关键字:golang使用 copier对象复制时进行类型转化

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: