【发布时间】:2016-07-04 16:44:26
【问题描述】:
我有一个主要用作命名空间的模块。让我们称之为Bla。还有其他子模块,它们具有对该子模块具有特定功能的方法。
但是,我想有两个选择:
1) 导入主模块Bla 并直接使用子模块中的所有功能(不要单独编写多个导入)
2) 仅导入特定的子模块,如 Bla.Subbla,以仅使用该模块中的函数,而不导入其他子模块中的函数
这就是我所拥有的:
defmodule Bla do
defdelegate bla_func(text), to: Bla.Subbla
defdelegate bla_func(text, opts), to: Bla.Subbla
end
defmodule Bla do
def bla_func(text), do: Bla.Subbla.bla_func(text)
def bla_func(text, opts), do: Bla.Subbla.bla_func(text, opts)
end
这样做的正确方法是什么?我有两个选择,但不知道,也许,还有更好的一个。这两个选项等效吗?哪个更可取?性能有区别吗?
【问题讨论】:
-
我认为您应该考虑使用
use并将有关您要导入的内容的选项传递给它。 -
听起来不错,将阅读有关此选项的信息(我只是在学习 - 目前了解不多)