【发布时间】:2017-04-19 16:22:03
【问题描述】:
Elixir 新手,试图理解这种语法的含义:
MyApplication.Module.function/2
函数后面的数字代表什么?
【问题讨论】:
Elixir 新手,试图理解这种语法的含义:
MyApplication.Module.function/2
函数后面的数字代表什么?
【问题讨论】:
数字代表函数的数量。当您要将命名函数传递给将函数作为参数的函数时,使用此语法。对于像
这样的东西真的很方便"1 2 3" |> String.split(" ") |> Enum.map(&String.to_integer/1)
【讨论】:
在 Elixir 和 Erlang 中,函数可以有多个主体子句(与 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。
您经常会看到内部使用具有大量参数的函数来计算结果。
【讨论】: