4

在 Erlang 中,我可以使用定义宏或 .hrl 文件将配置保存在一个地方。在 Elixir 中最好的地方是什么。

我找不到任何优雅的方法。现在我正在做类似的事情: -

def get_server_name do
    "TEST"
end

我错过了什么吗?

4

1 回答 1

5

无论您使用函数还是宏最终都应该很重要,但是如果您要寻找的是“将其保存在一个地方”部分,我建议将其放在自己的命名空间/模块中

defmodule MyApp.Configuration
  def server_name do
    "foo"
  end

  # or if you prefer having it all on one line
  def host_name, do: "example.com"

  # for complete equivalency, you can use a macro
  defmacro other_config do
    "some value"
  end
end

然后在您的应用程序中,您可以为模块设置别名,而不是包含文件,因此有一个简短的前缀来指示它的配置,并表明它们来自其他地方

defmodule MyApp.Server do
  alias MyApp.Configuration, as: C
end

或者如果您想直接使用名称

defmodule MyApp.Server do
  import MyApp.Configuration
end
于 2013-10-08T07:50:06.510 回答