Elixir中的斜线符号是什么意思?

Ric*_*Eng 13 elixir

在Elixir文档中,他们继续使用带有斜杠的奇数表示法,例如:

is_boolean/1
IO.puts/1
String.length/1
is_function/2
++/2
Run Code Online (Sandbox Code Playgroud)

我只是猜测,但我认为它指的是arity.但如果是这样的话,为什么魔鬼不是在文档的任何地方提到的?这并不是说这是IT中的任何标准惯例(至少,在我20多年的IT期间,我从未见过).

Chr*_*tin 17

第2页开始,入门文档的基本类型:

注意:Elixir中的函数由名称和参数数量(即arity)标识.因此,is_boolean/1标识一个名为a的is_boolean参数.is_boolean/2标识具有相同名称但不同arity的不同(不存在)函数.

它也在Erlang/Elixir语法:崩溃课程中描述:

这里我们创建一个名为的模块hello_module.在其中我们定义了三个函数,前两个函数可供其他模块通过export顶部的指令调用.它包含一系列函数,每个函数都以格式编写<function name>/<arity>.Arity代表争论的数量.

我可能会推测,这往往会降级为Elixir文献中的旁注,因为它直接来自Erlang.虽然使用Elixir不需要Erlang知识,但当人们记录Elixir派生的软件来自Erlang时,这种遗漏是一个常见的错误.


mic*_*ala 9

你猜对了,这是函数的数量。它是一个重要信息(通常不包含在许多语言中)的原因是具有相同名称但不同数量的函数是不同的函数 - 一个例子是Enum.reduce/2Enum.reduce/3。Elixir 中的函数由三项标识:模块、名称和数量。如果其中任何一个不同,那么您就有不同的功能。

入门指南中也提到了该符号:1 , 2