2016-04-21 37 views
10

在藥劑文檔,他們繼續使用與斜線一個奇怪的符號,例如:Elixir中的斜槓符號是什麼意思?

is_boolean/1 
IO.puts/1 
String.length/1 
is_function/2 
++/2 

我只是猜測,但我認爲它是指元數。但是如果是這樣的話,爲什麼在文檔中的任何地方都沒有提到魔鬼?這不像是IT中的任何標準慣例(至少,在我20多年以前從未見過的IT中)。

回答

13

page 2, Basic types入門文件:

注:花好月圓功能通過名稱和參數的數目(即元數)識別。因此,is_boolean/1標識了一個名爲is_boolean的函數,它接受1個參數。 is_boolean/2標識具有相同名稱但不同元素的不同(不存在)函數。

也正是在Erlang/Elixir Syntax: A Crash Course描述:

在這裏,我們創建一個名爲hello_module模塊。其中我們定義了三個函數,前兩個函數可供其他模塊通過頂部的export指令調用。它包含功能列表,每個功能都以<function name>/<arity>的格式編寫。 Arity代表參數的數量。

我可能會推測這在Elixir文獻中往往會被降級爲一個附註,因爲它直接來自Erlang。雖然Erlang的知識對於使用Elixir沒有必要,但當人們記錄Elixir衍生的軟件來自Erlang時,這種遺漏是一種常見的錯誤。

3

你猜對了,它是函數的arity。它是重要信息(通常不包括在許多語言中)的原因是名稱相同但功能不同的功能是不同的功能 - 例如Enum.reduce/2Enum.reduce/3。 Elixir中的一個功能由三件事情來標識:模塊,名稱和arity。任何一個都不同,你有不同的功能。

「入門指南」中還提到了符號:1,2