当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Function用法及代码示例


Elixir语言中 Function 相关用法介绍如下。

一组用于处理函数的函数。

匿名函数通常使用 fn 创建:

iex> add = fn a, b -> a + b end
iex> add.(1, 2)
3

匿名函数也可以有多个子句。所有子句都应该期望相同数量的参数:

iex> negate = fn
...>   true -> false
...>   false -> true
...> end
iex> negate.(false)
true

捕获运算符

也可以使用捕获操作符 Kernel.SpecialForms.&/1 捕获公共模块函数并像匿名函数一样传递它们:

iex> add = &Kernel.+/2
iex> add.(1, 2)
3

iex> length = &String.length/1
iex> length.("hello")
5

要捕获当前模块中的定义,您可以跳过模块前缀,例如 &my_fun/2 。在这些情况下,捕获的函数可以是公共的(def)或私有的(defp)。

捕获运算符也可用于创建至少需要一个参数的匿名函数:

iex> add = &(&1 + &2)
iex> add.(1, 2)
3

在这种情况下,使用捕获运算符与使用 fn 没有什么不同。

内部和外部函数

我们说指向驻留在模块中的定义的函数,例如 &String.length/1 ,是外部函数。所有其他函数都是本地的,它们总是绑定到定义它们的文件或模块。

除了此模块中用于处理函数的函数之外, Kernel 还有一个 apply/2 函数,它调用具有动态参数数量的函数,以及 is_function/1 is_function/2 ,分别检查给定值是否是给定数量的函数或函数。

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。