Julia 中是否有 include_once 函数或宏

Phu*_*uoc 5 julia

include_oncejulia 中是否有一种方法include只能对文件执行一次,就像C++ 中的方法#pragma once一样#ifndef

Min*_*ker 2

这个答案对评论进行了一些详细说明。对于像我这样的初学者来说,他们偶然发现了这篇文章,试图弄清楚文件组织的基础知识(在进入模块和包创建等稍微更高级的主题之前),并想知道为什么没有一种简单的方法来完成类似的事情C++ 的标头防护。

\n

关键是将所有内容都包含在“最低级别”文件中一次,而不是其他地方。示例:假设您有 main.jl、A.jl、B.jl 和 C.jl。认为:

\n

-main.jl 需要 A.jl 和 B.jl 和 C.jl。

\n

-A.jl 需要 B.jl 和 C.jl。

\n

-B.jl 需要 C.jl。

\n

这里的关键是不要在 A.jl 和 B.jl 中使用 include 语句。相反,您会找到 \xe2\x80\x9clowest-level\xe2\x80\x9d 文件(在本例中为 main.jl),并以正确的顺序将所有包含语句放在那里。在main.jl中:

\n
include("C.jl")\ninclude("B.jl")\ninclude("A.jl")\n
Run Code Online (Sandbox Code Playgroud)\n

然后在其他任何地方都没有包含语句。有关更多信息,请参阅https://www.reddit.com/r/Julia/comments/hwxpgm/beginner_question_files_modules_and_include_vs/,特别是评论中用户 a5sk6n\xe2\x80\x99s 的出色答案。

\n