获取 IEx 中所有 elixir 模块的列表
Get a list of all elixir modules in IEx
要在 IEx 中获取模块上所有函数的列表,我可以 运行:
Map.__info__(:functions)
# or
Enum.__info__(:functions)
使用 {Module}.__info__(:functions)
格式。
如何获得所有标准库模块的列表?
如果你想获得所有加载的 Elixir 模块,没有 erlang 模块,运行 在一个干净的 IEx shell:
:code.all_loaded()
|> Enum.filter(fn {mod, _} -> "#{mod}" =~ ~r{^[A-Z]} end)
|> Enum.map(fn {mod, _} -> mod end)
# [Exception, Application, Inspect.Atom, IEx.Pry, Logger.Config, Module, Keyword, ... ]
这也将包括像 IEx.Config
这样的子模块,但您可以使用一些额外的映射来过滤它们:
:code.all_loaded()
|> Enum.filter(fn {mod, _} -> "#{mod}" =~ ~r{^[A-Z]} end)
|> Enum.map(fn {mod, _} -> mod end)
|> Enum.map(fn mod -> hd(Module.split(mod)) end)
|> Enum.uniq
# ["Exception", "Application", "Inspect", "IEx", "Logger", "Module", "Keyword", ... ]
在 IEx 中,您可以键入 : + Tab 以获取所有可用模块的列表。
要在 IEx 中获取模块上所有函数的列表,我可以 运行:
Map.__info__(:functions)
# or
Enum.__info__(:functions)
使用 {Module}.__info__(:functions)
格式。
如何获得所有标准库模块的列表?
如果你想获得所有加载的 Elixir 模块,没有 erlang 模块,运行 在一个干净的 IEx shell:
:code.all_loaded()
|> Enum.filter(fn {mod, _} -> "#{mod}" =~ ~r{^[A-Z]} end)
|> Enum.map(fn {mod, _} -> mod end)
# [Exception, Application, Inspect.Atom, IEx.Pry, Logger.Config, Module, Keyword, ... ]
这也将包括像 IEx.Config
这样的子模块,但您可以使用一些额外的映射来过滤它们:
:code.all_loaded()
|> Enum.filter(fn {mod, _} -> "#{mod}" =~ ~r{^[A-Z]} end)
|> Enum.map(fn {mod, _} -> mod end)
|> Enum.map(fn mod -> hd(Module.split(mod)) end)
|> Enum.uniq
# ["Exception", "Application", "Inspect", "IEx", "Logger", "Module", "Keyword", ... ]
在 IEx 中,您可以键入 : + Tab 以获取所有可用模块的列表。