Julia:在函数中更新 Float64

mer*_*rch 4 julia

我正在尝试创建一个函数来更新 Float64 参数。下面的示例应该能够阐明我想要实现的目标。

a=1.2

function fun!(a)
   a=3.4;
end
Run Code Online (Sandbox Code Playgroud)

不幸的是,a仅在本地范围内更新。有没有办法做到这一点?我认为传递一个指向函数的指针会有所帮助,但我不知道如何在 Julia 中做到这一点。

Chr*_*kas 6

你不能这样做。AFloat64不是可变值,因此您不能改变 的值a。您只能用a单独的Float64. 这就是不可变值。

更底层(通常是正确的,但也有例外):Float64s 由它们的实际字节表示,而 mutables 是指向实际字节的指针。可变的实际值是它的指针。变异意味着改变指针指向的内存位置的值,但这对于不可变的来说不存在。