julia:推荐的`include`文件方式:顶级文件或嵌套包含的列表?

时间:2018-04-29 05:50:18

标签: include julia project-structure

include项目所有文件的推荐方式是什么?

我见过许多使用类似结构的示例:单个顶级文件中的include语句的有序列表(定义{{​​1}}的文件或“主”文件)申请)。

这似乎也是以下主题中的结论: https://discourse.julialang.org/t/best-practices-for-structuring-larger-projects/2652?u=nhdaly

然而,Module似乎对这种项目结构非常不满,抱怨持久Lint.jl

考虑以下示例:

use of undeclared symbol

当然,此代码可以正常运行,因为# --- src/lib1.jl --- struct MyStruct x::Int32 end # --- src/lib2.jl --- foo() = MyStruct(3) # Lint.jl says: E321 MyStruct: use of undeclared symbol # --- src/MyPackage.jl --- module MyPackage include("lib1.jl") include("lib2.jl") foo() end 在编译MyStruct之前可用。但是lib2.jl无法知道。即使使用Atom集成的Lint.jl,它也会显示相同的错误。

那么最好是 lib2.jl linter而不是顶层文件中的所有包含?或者最好将它们放在两个位置,就像include("lib1.jl")标题一样?我没有在任何地方看到这方面的明确建议,如果有人可以提供,我会很高兴! :)

编辑:更改了文件名以反映更典型的julia目录结构。

1 个答案:

答案 0 :(得分:2)

我通常会这样做:

PkgDev.generate("MyPackage", "MIT")

这将生成整个文件夹结构。我将Julia(.jl)文件放在src文件夹中,并使用“ using”将函数导入同一文件夹中其他Julia文件中。