Как получить глубокие копии составных типов Юлии?
Итак, вот настройка. У меня есть несколько составных типов, определенных с их собственными полями и конструкторами. Давайте покажем два упрощенных компонента:
type component1
x
y
end
type component2
x
y
z
end
Теперь я хочу определить новый тип так, чтобы он мог сохранять в нем массив размера K ранее определенных составных типов. Таким образом, это параметрический составной тип с двумя полями: одно - целое число K, а другое - массив размера K переданного типа.
type mixture{T}
components::Array{T, 1}
K::Int64
function mixture(qq::T, K::Int64)
components = Array{typeof(qq), K}
for k in 1:K
components[k] = qq
end
new(components, K)
end
end
Но это не правильный способ сделать это. Потому что все компоненты K ссылаются на один объект, и манипулирование смесью component.components [k] затронет все компоненты K. В питоне я могу исправить это с помощью глубокой копии. Но глубокая копия в Юлии не определена для составных типов. Как мне решить эту проблему?