cutego/pkg/util/struct_util.go

28 lines
598 B
Go

package util
import (
"bytes"
"cutego/pkg/logging"
"encoding/gob"
)
// DeepCopy 深度拷贝对象
// @Param src 原对象
// @Param dst 目标对象
// @Return 目标对象
// @Usage util.DeepCopy(item, &response.CronJobPageResponse{})
//
// @Author tianjun@odboy.cn
// @Date 2022-03-01
func DeepCopy(src, dst interface{}) interface{} {
var buf bytes.Buffer
if err := gob.NewEncoder(&buf).Encode(src); err != nil {
return err
}
err := gob.NewDecoder(bytes.NewBuffer(buf.Bytes())).Decode(dst)
if err != nil {
logging.ErrorLogf("src(%v)---> dst(%v), error", src, dst)
}
return dst
}