往事苯苯 (@wangshiben)基于Golang泛型的快速类型转换 中发帖

在微服务开发中,常常碰到如下需求: 在站内信功能或者message这种有批量数据返回功能的时候,在微服务和api服务中,常常涉及到同种数据不同类型相互转换,比如:messageDo → messagePb → messageApi,但是手写又很麻烦,所以我写了一个小轮子,来应对这种类型转换: 

半自动化实现方案(高效)

type listPbCopyFunc[T, E any] func(*T) E
func ArrayCopy[T, E any](lists []T, copyFunc listCopyFunc[T, E]) []E {
if len(lists) == 0 {
return nil
}
var res []E
for _, item := range lists {
res = append(res, copyFunc(item))
}
ret...