julia - 外部模块的引用函数

标签 julia

我致力于解决两个密切相关的问题的数字代码。以下对我来说似乎是一个很好的代码结构:

module Problems

common_function(i) = println("Solving problem ", i)

module Problem1
solve() = common_function(1)
end # module Problem1

module Problem2
solve() = common_function(2)
end # module Problem2

end # module Problems

不幸的是,它不起作用:运行 Problems.Problem1.solve() 导致 ERROR: common_function not defined。这可以修复吗?

备注:每个模块我有不止一个函数,因此用 problem1_solve() 函数替换 Problem1 模块并不是一个很好的解决方案。

最佳答案

在 1.0 版中,您必须从 relative path 导入给家长:

module Problems
common_function(i) = println("Solving problem ", i)

module Problem1
    import ..Problems: common_function
    solve() = common_function(1)
end # module Problem1

end # module Problems

这也适用于 using ..Problems

关于julia - 外部模块的引用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32518131/

相关文章:

function - 快速匿名功能现在是自动的吗?

julia - Julia-Lang 中 Package 的定义是什么?

julia - 如何将矩阵的切片放入具有 SMatrix 类型内部结构的 3D 数组中?

namespaces - 在 Julia 中确定函数是从哪个模块导出的

mathematical-optimization - 尽管数学上不可能,但 Gurobi 报告了无限模型

datetime - 使用日期时间 JULIA 根据持续时间创建行

julia - 反引号表示法中的可选参数

Julia 相当于 Python 的 "help()"

Julia 语言按位或 if 语句

julia - 有没有办法一次减去多个数据帧列?