闭包,匿名函数,为什么不创建值

时间:2018-12-29 14:57:03

标签: julia

在Julia 1.0中运行以下代码段

var

结果为anon = Array{Any}(undef, 2) for i = 1:2 anon[i] = ()-> println(i) i += -1 end anon[2]() anon[1]() 1。为什么不创建02(创建时1的值)?我知道i不会影响i += -1循环。

1 个答案:

答案 0 :(得分:0)

Julia scoping specifics: defining closure within loop给出了一个解释: Julia每次循环都为Set(CurrentItem, { myProperty: 3 }) 分配一个新的绑定,因此在每次迭代中i指向不同的内存位置