Julia中的初始化或主要功能

Pig*_*gna 5 program-entry-point julia

我读过全局变量对性能有显着影响.

为了避免它们,我把所有内容放在init函数中,正如我在这里读到的那样.

简单的例子,integer.jl:

function __init__()
    n = 0
    while n < 2
        try
            print("Insert an integer bigger than 1: ")
            n = parse(Int8,readline(STDIN))
        catch Error
            println("Error!")
        end
    end

    println(n)
end
Run Code Online (Sandbox Code Playgroud)

当我从命令行运行时julia integer.jl,没有任何反应.function main()也不起作用.

我该怎么做才能让它发挥作用?

(另外,你能纠正任何错误,非效率代码或非惯用语法吗?)

Ste*_*ski 13

该名称__init__保留为模块中函数的名称,该模块在加载模块时自动运行,因此除非您正在定义,否则请勿使用该名称.你可以调用这个函数main(没有特殊意义),然后调用它:

function main()
    # do stuff
end

main()
Run Code Online (Sandbox Code Playgroud)

  • Julia 在 Python 中是否有像 `if __name__ == '__main__':` 这样的保护?这有时对于也具有某种独立调试/测试模式的库很有用。 (2认同)
  • /sf/ask/1012379021/ 但简而言之,我不确定为什么您需要能够将同一文件作为脚本或定义模块的文件运行。 (2认同)