Se ho un tipo definito come:Come clonare una struttura con campo non esportato?
type T struct {
S string
is []int
}
allora come posso fare per la clonazione di un oggetto di questo tipo? Se faccio una semplice assegnazione:
p := T{"some string", []int{10, 20}}
q := p
Poi tutte le modifiche apportate al []int
effetto entrambi gli oggetti. Dal momento che T.is
non viene esportato, non può essere copiato esplicitamente, anche se estratto utilizzando reflect.
Attualmente sto fornendo un metodo Clone
nel pacchetto del tipo stesso. Ma questo non aiuta con tipi simili in altri pacchetti. c'è un altro modo per fare ciò?