Как получить глубокие копии составных типов Юлии?

Итак, вот настройка. У меня есть несколько составных типов, определенных с их собственными полями и конструкторами. Давайте покажем два упрощенных компонента:

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. В питоне я могу исправить это с помощью глубокой копии. Но глубокая копия в Юлии не определена для составных типов. Как мне решить эту проблему?

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

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