鉴于此代码:
function main()
println("hello")
end
if abspath(PROGRAM_FILE) == @__FILE__
main()
end
Run Code Online (Sandbox Code Playgroud)
最后一部分的作用是什么?它是如何工作的?这些变量是在哪里定义的?
PROGRAM_FILE是一个全局常量,定义为包含从命令行传递到正在执行的 Julia 进程的脚本名称的字符串(argv我认为是 C 术语中的第一个元素)。
@__FILE__是一个宏,扩展为它所扩展的文件的名称。
显示的组合是 Python 的 Julia 变体if __name__ == '__main__':当文件作为脚本运行时,PROGRAM_FILE将包含脚本名称,等于当前文件,并将main被调用。当文件被包含或从其他地方导入时,PROGRAM_FILE将包含使用当前文件的任何脚本的名称,并且与当前文件名不同。