当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Module.definitions_in用法及代码示例


Elixir语言中 Module.definitions_in 相关用法介绍如下。

用法一

definitions_in(module)
@spec definitions_in(module()) :: [definition()]

返回 module 中定义的所有函数和宏。

它以 [{name, arity}, ...] 的形式返回一个包含所有已定义函数和宏(公共和私有)的列表。

该函数只能在尚未编译的模块上使用。使用 Module.__info__/1 回调获取已编译模块中的公共函数和宏。

例子

defmodule Example do
  def version, do: 1
  defmacrop test(arg), do: arg
  Module.definitions_in(__MODULE__) #=> [{:version, 0}, {:test, 1}]
end

用法二

definitions_in(module, kind)
@spec definitions_in(module(), def_kind()) :: [definition()]

根据类型返回 module 中定义的所有函数。

该函数只能在尚未编译的模块上使用。使用 Module.__info__/1 回调获取已编译模块中的公共函数和宏。

例子

defmodule Example do
  def version, do: 1
  Module.definitions_in(__MODULE__, :def)  #=> [{:version, 0}]
  Module.definitions_in(__MODULE__, :defp) #=> []
end

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Module.definitions_in(module)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。