我有以下 MWE
\nfunction f(p)\n ans = zeros(p, 2)\n return ans\nend\n\nans = f(2)\n\nans\n\nb=ans.+1.0\nans\nRun Code Online (Sandbox Code Playgroud)\n起初,ans是正确的,但创建操作b会覆盖ans。
julia> ans = f(2)\n2\xc3\x972 Matrix{Float64}:\n 0.0 0.0\n 0.0 0.0\n\njulia> ans\n2\xc3\x972 Matrix{Float64}:\n 0.0 0.0\n 0.0 0.0\n\njulia> b=ans.+1.0\n2\xc3\x972 Matrix{Float64}:\n 1.0 1.0\n 1.0 1.0\n\njulia> ans\n2\xc3\x972 Matrix{Float64}:\n 1.0 1.0\n 1.0 1.0\n\nRun Code Online (Sandbox Code Playgroud)\n这是 Julia 1.6.5 的全新安装。
\n如果我只是问,同样的事情也会发生typeof(ans)。其本身的值更改为DataTypeans的输出。typeof(ans)
julia> ans=f(2)\n2\xc3\x972 Matrix{Float64}:\n 0.0 0.0\n 0.0 0.0\n\njulia> typeof(ans)\nMatrix{Float64} (alias for Array{Float64, 2})\n\njulia> typeof(ans)\nDataType\nRun Code Online (Sandbox Code Playgroud)\n有任何想法吗?
\njulia ×1