Julia

时间:2019-12-03 18:58:18

标签: julia

请考虑以下两个功能,

function f(x)
    x = x .+ 1
end

function g(x)
    x .+= 1
end

我的理解是,由于a .+= b只是a = a .+ b的语法糖,因此它们应该表现相同。但是,f不会使作为参数传递给它的全局变量发生突变,而g会对此产生突变。

有人可以告诉我这里发生了什么吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

这几乎是 右边:x .+= 1x .= x .+ 1的语法糖,它进行就地元素分配,而x = x .+ 1重新绑定x到通过按元素加法生成的新数组。