模块名称与Julia中的导出类型冲突

Art*_*rov 6 module julia

我碰巧犯了一个愚蠢的错误 - 创建一个具有它所在模块名称的类型.假设我想X从我的包中导出该类型X:

module X

export X
export .X
export X.X

type X end

end
Run Code Online (Sandbox Code Playgroud)

首先会给我:

ERROR: LoadError: LoadError: invalid redefinition of constant X
Run Code Online (Sandbox Code Playgroud)

第二:

ERROR: LoadError: LoadError: syntax: invalid identifier name "."
Run Code Online (Sandbox Code Playgroud)

第三:

ERROR: LoadError: LoadError: syntax: extra token "." after end of expression
Run Code Online (Sandbox Code Playgroud)

是否有一个有效的语法来解决我的导出问题?

PS我知道我可以更改模块/类型的名称.

Jef*_*off 1

正如Tom Breloff所说,为实现新类型的包命名有一个很好遵循的做法。如果您的包导出的类型支持对非常小的字符串进行非常快速的操作,并且该类型名为FastString,则建议的包名称为FastStrings.jl

Julia 包名称包含.jl后缀 .. 你的也应该包含后缀。对于将多个包集中在一个伞下的项目,项目名称可能会放弃尾随.jl; 它汇集在一起​​的包应该以.jl.

这里收集了一些命名包的指南