我试图在Julia中填充一系列函数。最小的例子是
function nice()
i=1
while true
f() = i
produce(f)
i+=1
end
end
ye = Task(() -> nice())
funcs = Function[]
for i in [1:2]
push!(funcs,consume(ye))
println("Why does this not stay the same???")
println(funcs[1]())
end
问题是funcs [1]从返回1的那个变为返回2的那个!请帮帮我!
答案 0 :(得分:1)
这解决了它。我需要一个let命令和f =() - > j语句
function nice()
i=1
while true
let j=i
f=()->j
produce(f)
end
i+=1
end
end
ye = Task(() -> nice())
funcs = Function[]
for k in [1:2]
push!(funcs,consume(ye))
end
println(funcs[1]())
println(funcs[2]())