Elixir语言中 Module.eval_quoted
相关用法介绍如下。
用法:
eval_quoted(module_or_env, quoted, binding \\ [], opts \\ [])
@spec eval_quoted(
module() | Macro.Env.t(),
Macro.t(),
list(),
keyword() | Macro.Env.t()
) :: term()
评估给定模块上下文中引用的内容。
环境选项列表也可以作为参数给出。有关详细信息,请参阅
。Code.eval_string/3
如果模块已经编译,则引发错误。
例子
defmodule Foo do
contents =
quote do
def sum(a, b), do: a + b
end
Module.eval_quoted(__MODULE__, contents)
end
Foo.sum(1, 2)
#=> 3
为方便起见,您可以将任何
结构体(例如 Macro.Env
)作为第一个参数或选项传递。模块和所有选项都将从环境中自动提取:__ENV__/0
defmodule Foo do
contents =
quote do
def sum(a, b), do: a + b
end
Module.eval_quoted(__ENV__, contents)
end
Foo.sum(1, 2)
#=> 3
请注意,如果您将
结构作为第一个参数传递,同时还传递 Macro.Env
opts
,它们将与具有优先权的 opts
合并。
相关用法
- Elixir Module.defines?用法及代码示例
- Elixir Module.concat用法及代码示例
- Elixir Module.delete_attribute用法及代码示例
- Elixir Module.put_attribute用法及代码示例
- Elixir Module.split用法及代码示例
- Elixir Module.overridables_in用法及代码示例
- Elixir Module.definitions_in用法及代码示例
- Elixir Module.has_attribute?用法及代码示例
- Elixir Module.get_attribute用法及代码示例
- Elixir Module.reserved_attributes用法及代码示例
- Elixir Module.register_attribute用法及代码示例
- Elixir Module.create用法及代码示例
- Elixir Module.safe_concat用法及代码示例
- Elixir Module.attributes_in用法及代码示例
- Elixir Module用法及代码示例
- Elixir Map.keys用法及代码示例
- Elixir Map.values用法及代码示例
- Elixir Map.update用法及代码示例
- Elixir MapSet用法及代码示例
- Elixir Map.split用法及代码示例
- Elixir MapSet.intersection用法及代码示例
- Elixir Map.put_new_lazy用法及代码示例
- Elixir Map.drop用法及代码示例
- Elixir Macro.Env.fetch_alias用法及代码示例
- Elixir Map用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Module.eval_quoted(module_or_env, quoted, binding \\ [], opts \\ [])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。