我试图理解 Julia 如何复制和处理变量。看一下以下示例和以下问题:
a = 1
b = 1
a === b #why do they share the same address? I defined them independently
a = 1
b = a
a === b #true, this makes sense
a = 10 #b still has value of 1 though? why is that when they share the same address as per above?
a = (1,2)
b = (1,2)
a === b #how can they have the same address?
a = [1,2]
b = [1,2] …Run Code Online (Sandbox Code Playgroud) 我试图了解Juliacopy()和deepcopy()Julia之间的区别。根据我在Julia 文档中读到的内容,它似乎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
Run Code Online (Sandbox Code Playgroud)
也许这只是我上面选择的一个不好的例子,但我不知道深度复制会提供多少不同的结果(也许在我的简单示例中不会,但是否有一个经过验证的真实示例突出了深度复制和常规复制之间的区别?)。