Julia 闭包,匿名函数,为什么不在创建它们时作为值
在Julia 1.0中运行以下代码段Julia 闭包,匿名函数,为什么不在创建它们时作为值,julia,Julia,在Julia 1.0中运行以下代码段 anon = Array{Any}(undef, 2) for i = 1:2 anon[i] = ()-> println(i) i += -1 end anon[2]() anon[1]() 结果是1和0。为什么不是2和1(创建i时的值)?我知道I+=-1不会影响for循环。给出了一个解释:对于每个循环,Julia都为I分配一个新的绑定,因此在每次迭代中I指向不同的内存位置
anon = Array{Any}(undef, 2)
for i = 1:2
anon[i] = ()-> println(i)
i += -1
end
anon[2]()
anon[1]()
结果是1
和0
。为什么不是2
和1
(创建i
时的值)?我知道I+=-1
不会影响for
循环。给出了一个解释:对于每个循环,Julia都为I
分配一个新的绑定,因此在每次迭代中I
指向不同的内存位置