Wie kann eine Struktur mit einem nicht exportierten Feld geklont werden?
Wenn ich einen Typ definiert habe als:
type T struct {
S string
is []int
}
Wie kann ich dann vorgehen, um ein Objekt dieses Typs zu klonen? Wenn ich eine einfache Aufgabe mache:
p := T{"some string", []int{10, 20}}
q := p
Bei Änderungen am[]int
betrifft beide Objekte. Schon seitT.is
wird nicht exportiert, es kann nicht explizit kopiert werden, auch wenn es mit reflect extrahiert wurde.
Ich liefere gerade einClone
-Methode im Paket des Typs selbst. Dies hilft jedoch nicht bei ähnlichen Typen in anderen Paketen. Gibt es eine andere Möglichkeit, dies zu tun?