为什么Julia 1.0无法写入标准输出,而Julia 0.6可以工作

为什么Julia 1.0无法写入标准输出,而Julia 0.6可以工作,julia,Julia,当我编译它时,它会给我错误消息 function main() (k, a, b, a1, b1) = (BigInt(2), BigInt(4), BigInt(1), BigInt(12), BigInt(4)) while true (p, q, k) = (k*k, BigInt(2)*k+BigInt(1), k+BigInt(1)) (a, b, a1, b1) = (a1, b1, p*a+q*a1, p*b+q*b1)

当我编译它时,它会给我错误消息

function main()
    (k, a, b, a1, b1) = (BigInt(2), BigInt(4), BigInt(1), BigInt(12), BigInt(4))
    while true
        (p, q, k) = (k*k, BigInt(2)*k+BigInt(1), k+BigInt(1))
        (a, b, a1, b1) = (a1, b1, p*a+q*a1, p*b+q*b1)
        (d,d1) = ( div(a,b),div(a1,b1) )
        while d == d1
            write(STDOUT,string(d))
            (a,a1) = ( BigInt(10) * (a % b), BigInt(10) * (a1 % b1) )
            (d,d1) = ( div(a,b),div(a1,b1) )
        end
    end
end

main()
它在julia 0.6中工作得很好,产生了Pi的所有数字

$ julia pi_2.jl 
ERROR: LoadError: UndefVarError: STDOUT not defined

在Julia 1.0中,
STDOUT
被重命名为
STDOUT

如果您是从Julia 0.6进行移植,我建议您使用Julia 0.7而不是Julia 1.0


Julia 0.7和Julia 1.0具有相同的功能,但Julia 0.7在大多数情况下都会打印一条警告,当Julia 0.6发生重大更改时,Julia 1.0会出现错误。

尝试删除示例中所有不必要的代码。只要
write(STDOUT,“hello”)
就足以证明您在这种情况下的问题。谢谢。我已经在我的Mac上安装了Julia0.7作为julia07。我原以为我可以跳过它,直接跳到1.0,但结果是很痛苦的。
$ julia06 pi_2.jl 
3141592653589793238462643383279502884197169399375105820974944592307816...