Elixir函数/数字语法

时间:2017-04-19 08:02:41

标签: function elixir

Elixir的新手,试图了解这种语法的含义:

MyApplication.Module.function/2

函数后面的数字代表什么?

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/1sum/2

通常,您可以看到内部使用具有大量参数的函数来计算结果。