Julia 朱莉娅:按值传递的结构字段
在下面的Julia代码中,st.a和b是同一个数组,所以当我从st.a中删除一个元素时,这个元素也从b中删除。是否每次创建Mystruct的对象*时都会生成一个新数组“*.a”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
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
。