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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage