當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。