Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 

20 lignes
341 B

  1. package common
  2. import (
  3. "fmt"
  4. "github.com/jinzhu/copier"
  5. )
  6. func DeepCopy[T any](src *T) (*T, error) {
  7. if src == nil {
  8. return nil, fmt.Errorf("copy source cannot be nil")
  9. }
  10. var dst T
  11. err := copier.CopyWithOption(&dst, src, copier.Option{DeepCopy: true, IgnoreEmpty: true})
  12. if err != nil {
  13. return nil, err
  14. }
  15. return &dst, nil
  16. }