Как клонировать структуру с неэкспортированным полем?

Если у меня есть тип, определенный как:

type T struct {
    S  string
    is []int
}

тогда как я могу пойти клонировать объект этого типа? Если я делаю простое задание:

p := T{"some string", []int{10, 20}}
q := p

Затем любые изменения, внесенные в[]int влияет на оба объекта. посколькуT.is не экспортируется, его нельзя скопировать явно, даже если он извлечен с использованием отражения.

В настоящее время я поставляюClone Метод в пакете самого типа. Но это не помогает с подобными типами в других пакетах. Есть ли другой способ сделать это?

Ответы на вопрос(1)

Ваш ответ на вопрос