gpt4 book ai didi

julia - Julia 中的复制和深复制有什么区别?

转载 作者:行者123 更新时间:2023-12-01 19:36:03 24 4
gpt4 key购买 nike

我想了解 copy() 之间的区别和 deepcopy()在 Julia 。基于我在 the Julia docs 中读到的内容好像deepcopy()复制这些值,然后创建一个与我从中复制的原始对象无关的新对象。那部分是有道理的。我对以下对象之间的关系更加困惑:

julia> a = [1,2,3]
3-element Array{Int64,1}:
1
2
3

julia> b = copy(a)
3-element Array{Int64,1}:
1
2
3

julia> a == b
true

julia> isequal(a,b)
true

也许这只是我上面选择的一个不好的例子,但我不知道深度复制会提供多少不同的结果(也许在我的简单示例中不会,但是否有一个经过验证的真实示例突出了深度复制和常规复制之间的区别?)。

最佳答案

重要的区别在于deepcopy是递归的,而 copy不是:

julia> a = [[1,2,3], [4,5,6]];

julia> b = copy(a);

julia> c = deepcopy(a);

julia> a[1][1] = 11
11

julia> a
2-element Array{Array{Int64,1},1}:
[11, 2, 3]
[4, 5, 6]

julia> b
2-element Array{Array{Int64,1},1}:
[11, 2, 3]
[4, 5, 6]

julia> c
2-element Array{Array{Int64,1},1}:
[1, 2, 3]
[4, 5, 6]

关于julia - Julia 中的复制和深复制有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60017533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com