【发布时间】:2020-05-29 22:20:09
【问题描述】:
鉴于以下代码,use Composite, user_opts: user_opts 行在 using(opts) as opts 中以 [{:user_opts, [line: 3, counter: {MockUserNode1, 2}], Automaton.Node}] 结尾。有什么办法可以将该代码注入到外部宏中?
defmacro __using__(user_opts) do
a =
if Enum.member?(Composite.types(), user_opts[:node_type]) do
IO.inspect(user_opts)
quote bind_quoted: [user_opts: user_opts] do
use DynamicSupervisor
use Composite, user_opts: user_opts
end
else
quote do: use(Action)
end
end
【问题讨论】:
-
你能把你的问题说得更清楚吗?展示一个你期望在最后得到什么的例子。
标签: macros elixir metaprogramming