gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:39:28 31 4
gpt4 key购买 nike

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

我见过很多使用类似结构的例子: include 的有序列表单个顶级文件(定义 Module 的文件,或应用程序中的“主”文件)中的语句。

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

然而,Lint.jl似乎对这种项目结构很不满意,提示执着use of undeclared symbol s。

考虑以下示例:

# --- 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 之前可用被编译。但是 Lint.jl不能知道。即使使用 Atom 集成 linter ,它显示相同的错误。

所以最好有 lib2.jl include("lib1.jl")而不是顶级文件中的所有包含?或者最好把它们放在两个地方,就像你对 C++ 所做的那样。标题?我还没有在任何地方看到明确的建议,如果有人可以提供,我很乐意! :)

编辑:更改文件名以反射(reflect)更典型的 julia 目录结构。

最佳答案

我通常做一个:

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

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

关于include - julia: `include` 文件的推荐方法:顶级文件中的包含列表或嵌套包含?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50083783/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com