Function 在Julia中声明主函数/入口点
在Julia程序中是否有一种现成的或惯用的方法来声明入口点(即C语言中的Function 在Julia中声明主函数/入口点,function,julia,code-structure,Function,Julia,Code Structure,在Julia程序中是否有一种现成的或惯用的方法来声明入口点(即C语言中的main,或者Python中的if\uuu name\uuu==“\uu main”构造) 这似乎是一个重要的功能,以便编写更大的结构化代码,而这些代码不会在交互模式中使用,但我找不到任何关于如何在Julia中实现这一点的提示,如果有的话(一个可能的逃生路线可能是编写一个任意函数作为main,然后在主模块末尾的顶层调用它一次,但这并不优雅,甚至可能没有效率).TIA.您可以编写一个main函数,而不是从文件的顶层调用它。要从
main
,或者Python中的if\uuu name\uuu==“\uu main”
构造)
这似乎是一个重要的功能,以便编写更大的结构化代码,而这些代码不会在交互模式中使用,但我找不到任何关于如何在Julia中实现这一点的提示,如果有的话(一个可能的逃生路线可能是编写一个任意函数作为
main
,然后在主模块末尾的顶层调用它一次,但这并不优雅,甚至可能没有效率).TIA.您可以编写一个main
函数,而不是从文件的顶层调用它。要从命令行运行程序,您可以使用julia-L file.jl-e'main(一些,args)“
。-L
开关告诉Julia加载您的文件,然后-e
告诉它计算以下表达式。还有一个-e
开关计算并打印(我认为它是“大声计算”,因为大写字母似乎“大声”)
与C的main
或Python的相比,如果
,这有两个优点:
-e main(53)
这样的调用使用整数53调用main
,而不需要atoi
内部main
加载模块时,如果它们有一个名为
\uuuuu init\uuuuuuuuuu
的函数,就会调用它。这有帮助吗?如果你想做python中的if{uuuuuuu name\uuuuuuuuu==“\uuuuuuuuuuu main\uuuuuuuuuuuuuuuu”的习惯用法,我发现
if !isdefined(Base, :active_repl)
main()
end
这就是诀窍
我经常发现自己希望能够将我的主文件加载到REPL中,并有选择地插入一些函数,而无需调用main或将CLI装订到主要用作库模块的模块上,因此我非常喜欢python中的这一技巧。也许是一些咒语?我建议搜索Yes,这似乎更多或更多少了我想要的,谢谢。