Import 是否可以在Julia中直接导入宏?

Import 是否可以在Julia中直接导入宏?,import,macros,namespaces,julia,Import,Macros,Namespaces,Julia,我希望从包中加载单个宏,而不包括包的所有其他部分。就像导入特定函数一样,如: using Package1: function1 我之所以希望这样做,不仅是为了只加载包中所需的部分,还为了明确显示宏的加载位置。是的,这是可能的。可以导入模块或包中的任何顶级变量 julia> module A x = 1 macro foo(x) x end end Ma

我希望从包中加载单个宏,而不包括包的所有其他部分。就像导入特定函数一样,如:

using Package1: function1 

我之所以希望这样做,不仅是为了只加载包中所需的部分,还为了明确显示宏的加载位置。

是的,这是可能的。可以导入模块或包中的任何顶级变量

julia> module A
           x = 1
           
           macro foo(x)
               x
           end
       end
Main.A

julia> using .A: x, @foo

julia> x
1

julia> @foo 2 + 2
4

但是,请注意,
使用
导入
语句仍然会加载整个包。您可以控制的部分是将哪些名称添加到名称空间。

谢谢!幸运的是,它是按照你期望的方式完成的,很高兴知道。由于您的回答,我能够解决真正的问题,即宏对包内函数的依赖性,我没有加载(添加到名称空间)。