我在 Julia 中有一个函数需要在循环中执行操作。一个参数被传递给循环,这个参数越大,函数越慢。我想有一条消息来知道它在哪个迭代中,但似乎 Julia 在打印任何东西之前等待整个函数完成。这是 Julia 1.4。这种行为不在 Julia 1.3 上。
一个例子是这样的
function f(x)
rr=0.000:0.0001:x
aux=0
for r in rr
print(r, " ")
aux+=veryslowfunction(r)
end
return aux
end
事实上,当调用 f 时,它在完成之前不会打印任何内容。
最佳答案
您需要在 print
后面添加命令:
flush(stdout)
解释
进程的标准输出通常被缓冲。特定的缓冲区大小和行为取决于您的系统设置和终端类型。
通过刷新缓冲区,您可以确保将内容实际发送到终端。
关于function - Julia 在循环打印消息之前等待函数完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60982177/