为什么Julia 1.0无法写入STDOUT但Julia 0.6可以工作

时间:2018-08-13 07:52:44

标签: 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)
        (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 pi_2.jl 
ERROR: LoadError: UndefVarError: STDOUT not defined

它在julia 0.6中完美运行,并产生了Pi的所有数字

$ julia06 pi_2.jl 
3141592653589793238462643383279502884197169399375105820974944592307816...

1 个答案:

答案 0 :(得分:9)

STDOUT在Julia 1.0中重命名为stdout

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

Julia 0.7和Julia 1.0具有相同的功能,但是在与Julia 0.6相比有重大变化时,Julia 0.7大多数时候会打印警告,提示Julia 1.0在某些地方出错。