Elixir的新手,试图了解这种语法的含义:
MyApplication.Module.function/2
函数后面的数字代表什么?
答案 0 :(得分:4)
数字代表函数的arity。如果要将命名函数传递给将函数作为参数的函数,则使用此语法。这对于像
这样的事情来说非常方便"1 2 3" |> String.split(" ") |> Enum.map(&String.to_integer/1)
答案 1 :(得分:1)
在Elixir和Erlang函数中可以有多个body子句(与C ++,Java等不同),所以为了区分我们使用 arity ,它只是的数量参数
例如:
defmodule Math do
def sum(x) do
x + 0
end
def sum(x, y) do
x + y
end
end
所以在这里你有两个相似但不同的功能:sum/1
和sum/2
。
通常,您可以看到内部使用具有大量参数的函数来计算结果。