Julia 变量 disappears/changes
Julia variable disappears/changes
我有以下MWE
function f(p)
ans = zeros(p, 2)
return ans
end
ans = f(2)
ans
b=ans.+1.0
ans
起初,ans
是正确的,但是创建b
的操作覆盖了ans
。
julia> ans = f(2)
2×2 Matrix{Float64}:
0.0 0.0
0.0 0.0
julia> ans
2×2 Matrix{Float64}:
0.0 0.0
0.0 0.0
julia> b=ans.+1.0
2×2 Matrix{Float64}:
1.0 1.0
1.0 1.0
julia> ans
2×2 Matrix{Float64}:
1.0 1.0
1.0 1.0
这是 julia 1.6.5 的全新安装。
如果我只问 typeof(ans)
,同样的事情也会发生。 ans
的值本身更改为 typeof(ans)
的输出,它是一个数据类型。
julia> ans=f(2)
2×2 Matrix{Float64}:
0.0 0.0
0.0 0.0
julia> typeof(ans)
Matrix{Float64} (alias for Array{Float64, 2})
julia> typeof(ans)
DataType
有什么想法吗?
参见 ans
的文档字符串:
help?> ans
ans
A variable referring to the last computed value, automatically set at the interactive prompt.
正如您所见,Julia REPL 会在每次对表达式求值后自动覆盖 ans
。
简而言之,建议不要在交互式会话的全局范围内使用ans
(除非要获取上次操作的结果)。
我有以下MWE
function f(p)
ans = zeros(p, 2)
return ans
end
ans = f(2)
ans
b=ans.+1.0
ans
起初,ans
是正确的,但是创建b
的操作覆盖了ans
。
julia> ans = f(2)
2×2 Matrix{Float64}:
0.0 0.0
0.0 0.0
julia> ans
2×2 Matrix{Float64}:
0.0 0.0
0.0 0.0
julia> b=ans.+1.0
2×2 Matrix{Float64}:
1.0 1.0
1.0 1.0
julia> ans
2×2 Matrix{Float64}:
1.0 1.0
1.0 1.0
这是 julia 1.6.5 的全新安装。
如果我只问 typeof(ans)
,同样的事情也会发生。 ans
的值本身更改为 typeof(ans)
的输出,它是一个数据类型。
julia> ans=f(2)
2×2 Matrix{Float64}:
0.0 0.0
0.0 0.0
julia> typeof(ans)
Matrix{Float64} (alias for Array{Float64, 2})
julia> typeof(ans)
DataType
有什么想法吗?
参见 ans
的文档字符串:
help?> ans
ans
A variable referring to the last computed value, automatically set at the interactive prompt.
正如您所见,Julia REPL 会在每次对表达式求值后自动覆盖 ans
。
简而言之,建议不要在交互式会话的全局范围内使用ans
(除非要获取上次操作的结果)。