在Elixir中调用Erlang函数的格式是什么?
具体来说,我应该如何在iex
中调用函数,并且在哪里可以找到Erlang可用的模块和函数列表。
在Elixir中调用Erlang函数的格式是什么?
具体来说,我应该如何在iex
中调用函数,并且在哪里可以找到Erlang可用的模块和函数列表。
首先在Erlang OTP参考页面索引中找到要调用的模块和函数。
例如,要调用random uniform,您需要查找random模块并找到uniform\0函数。
在Elixir中调用它的格式为:module.function()
,例如,
iex(1)> :random.uniform()
0.7230402056221108
对于不带任何参数的函数,括号是可选的。
iex> :c<TAB>
这将向您展示以字母c开头的所有已加载模块,来自Erlang。
iex> :crypto.<TAB>
该模块将向您展示所有可用的功能。不幸的是,截至Elixir 1.2版本,h命令尚未适用于Erlang模块。但它确实有一个有用的副作用。
并非所有可用的Erlang模块最初都被加载(标准Erlang发行版中有500多个)。获取模块加载的一种方法是使用h命令。
iex> h :crypto
l
命令,但那没那么有趣。erldocs.com 允许您交互式搜索Erlang文档。
如果您已经安装了manpages,它们也很方便(只需在shell中输入man <module-name>
)。对于这一点,我推荐使用kerl,它可以通过正确的配置自动安装Erlang manpages。
对于我的项目,我要不要脸地打个广告:
在IEx中使用h
来查找Erlang函数/模块是无效的,但希望通过docsh实现。
CamelCaseNames
,而Erlang模块具有:snake_case_names_with_a_colon
。 - Paweł Obrok