Elixir是否支持内省以显示可用功能?

Nat*_*ong 4 elixir

请考虑编程凤凰城的这个片段:

defmodule Rumbl.VideoController do
  use Rumbl.Web, :controller

  def index(conn, _params) do
    videos = Repo.all(Video)
    render(conn, "index.html", videos: videos)
  end

end
Run Code Online (Sandbox Code Playgroud)

index使用render由触发的导入获得的函数use Rumbl.Web, :controller.

我知道还导入了其他功能.但Elixir是否提供了列出它们的方法?

我可以列出Elixir中当前范围的可用功能吗?

mic*_*ala 9

您可以从__ENV__宏获取此类信息.它返回的Macro.Envstruct存在文档.

从结构为你最有趣的领域是functionsmacros包含当前可用的函数和宏列表以及它们起源于模块组装在一起.