`__init__` 或 Julia 中的 main 函数

问题描述 投票:0回答:2

我读到全局变量对性能有显着的影响。

为了避免它们,我将所有内容都放在了 init 函数中,正如我在here中读到的那样。

简单的例子,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

当我从命令行运行

julia integer.jl
时,没有任何反应。
function main()
也不起作用。

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

(另外,你能纠正任何错误、低效代码或不惯用的语法吗?)

program-entry-point julia
2个回答
24
投票

名称

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

function main()
    # do stuff
end

main()

1
投票

当前 Julia 1.11 测试版导出了

Base.@main
,它指示 Julia 运行标记的函数:

function (@main)(args)
   println("Hello, world!")
end

参见 https://docs.julialang.org/en/v1.11.0-rc2/manual/command-line-interface/#The-Main.main-entry-point

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.