gpt4 book ai didi

Julia 变量消失/改变

转载 作者:行者123 更新时间:2023-12-05 01:52:22 27 4
gpt4 key购买 nike

我有以下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

简而言之,建议不要在交互式 session 的全局范围内使用ans(除非要获取上次操作的结果)。

关于Julia 变量消失/改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71618142/

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