include_oncejulia 中是否有一种方法include只能对文件执行一次,就像C++ 中的方法#pragma once一样#ifndef?
这个答案对评论进行了一些详细说明。对于像我这样的初学者来说,他们偶然发现了这篇文章,试图弄清楚文件组织的基础知识(在进入模块和包创建等稍微更高级的主题之前),并想知道为什么没有一种简单的方法来完成类似的事情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中:
\ninclude("C.jl")\ninclude("B.jl")\ninclude("A.jl")\nRun 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| 归档时间: |
|
| 查看次数: |
860 次 |
| 最近记录: |