问题:当我构建自己的模块时,Julia中using
和import
之间的区别是什么?
我的猜测基于阅读文档: using
用于将另一个模块带入当前模块的名称空间。 import
用于将其他模块中的特定类型/函数/变量引入当前模块的名称空间。
那么,我有多难?
答案 0 :(得分:22)
朱莉娅Modules documentation陈述:
仅
import
关键字[...] 一次只能使用一个名称。它不会添加模块 搜索using
的方式。import
也与using
不同 必须使用import
导入函数以使用new进行扩展 方法。 [...] 其名称仅通过using
可见的功能无法扩展。
(强调我的。)
例如,您可以使用import
向Base.show
添加方法来漂亮打印自己的类型,但不能using
。
还有importall
导入模块的所有导出名称。
答案 1 :(得分:14)
与此相关的documentation(Julia 1.4的更新链接)非常好。这是我发现的最简洁的摘要:
(一个用于演示以下示例的演示模块)
module MyModule
export x, y
x() = "x"
y() = "y"
p() = "p"
end
(这是文档中的表,但是StackOverflow仍然不会添加对表的支持,因此...重新格式化)
命令
using MyModule
x
和y
),MyModule.x
,MyModule.y
和MyModule.p
MyModule.x
,MyModule.y
和MyModule.p
using MyModule: x, p
x
和p
import MyModule
MyModule.x
,MyModule.y
和MyModule.p
MyModule.x
,MyModule.y
和MyModule.p
import MyModule.x, MyModule.p
x
和p
x
和p
import MyModule: x, p
x
和p
x
和p