Julia 朱莉娅:按值传递的结构字段

Julia 朱莉娅:按值传递的结构字段,julia,Julia,在下面的Julia代码中,st.a和b是同一个数组,所以当我从st.a中删除一个元素时,这个元素也从b中删除。是否每次创建Mystruct的对象*时都会生成一个新数组“*.a” struct Mystruct a::Array{Int64,1} Mystruct(a::Array{Int64,1}) = new(a) end b = [1, 2, 3, 4] st = Mystruct(b) deleteat!(st.a,1) 我认为: struct Mystruct

在下面的Julia代码中,st.a和b是同一个数组,所以当我从st.a中删除一个元素时,这个元素也从b中删除。是否每次创建Mystruct的对象*时都会生成一个新数组“*.a”

struct Mystruct
     a::Array{Int64,1}
     Mystruct(a::Array{Int64,1}) = new(a)
end

b = [1, 2, 3, 4]
st = Mystruct(b)
deleteat!(st.a,1)
我认为:

struct Mystruct
     a::Array{Int64,1}
     Mystruct(a::Array{Int64,1}) = new(copy(a))
end
我会做你想要的工作。

我认为:

struct Mystruct
     a::Array{Int64,1}
     Mystruct(a::Array{Int64,1}) = new(copy(a))
end

将完成您想要的工作。

无需
deepcopy
,使用
copy
。无需
deepcopy
,使用
copy