“application.get_key > modules”将返回:undefined

问题描述 投票:0回答:0

我想在编译时获取某个命名空间中的模块列表,作为一个宏。

defmodule MyApp.MyModuleLoader do
  defmacro __using__(opts) do
    quote bind_quoted: [opts: opts] do

      a1 = :application.get_key(:my_app)
      modules = :application.get_key(:my_app, :modules)

      IO.puts("****:a1: #{Kernel.inspect(a1)}")
      IO.puts("****:modules: #{Kernel.inspect(modules)}")

      # ====> :undefined

      # filter out the ones I don't need...
      # ....
    end
  end
end

然后我会

use MyModuleLoader
在模式模型模块中。 但是它会在编译期间为两个变量打印出
:undefined

为什么?如何解决这个问题?

elixir
© www.soinside.com 2019 - 2024. All rights reserved.