在 Elixir 中,为什么导入模块时首选“alias”而不是“import”?

che*_*sta 5 erlang elixir

请注意,该语言通常不鼓励导入。在处理您自己的代码时,更喜欢导入别名。

我在文档中找到了此声明,但那里没有进一步的解释。

Hau*_*eth 9

几个原因:

  • import在这些模块之间创建编译时依赖性,这意味着导入模块编译需要等待导入模块编译完成。alias不要创建这样的依赖关系。
  • imports 通常会在模块范围内引入太多内容,并且当导入的模块将添加更多函数时可能会导致编译冲突(不能定义与导入的函数同名的函数)。