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


Elixir Kernel.apply用法及代码示例


Elixir语言中 Kernel.apply 相关用法介绍如下。

用法一

apply(fun, args)
@spec apply((... -> any()), [any()]) :: any()

使用参数列表 args 调用给定的匿名函数 fun

如果在编译时知道参数的数量,则首选 fun.(arg_1, arg_2, ..., arg_n) 因为它比 apply(fun, [arg_1, arg_2, ..., arg_n]) 更清晰。

由编译器内联。

例子

iex> apply(fn x -> x * 2 end, [2])
4

用法二

apply(module, function_name, args)
@spec apply(module(), function_name :: atom(), [any()]) :: any()

使用参数列表从 module 调用给定函数 args

apply/3 用于调用在运行时动态定义模块、函数名称或参数的函数。因此,您不能使用 apply/3 调用宏,只能调用函数。

如果在编译时知道参数的数量和函数名称,则首选 module.function(arg_1, arg_2, ..., arg_n) 因为它比 apply(module, :function, [arg_1, arg_2, ..., arg_n]) 更清晰。

apply/3 不能用于调用私有函数。

由编译器内联。

例子

iex> apply(Enum, :reverse, [[1, 2, 3]])
[3, 2, 1]

相关用法


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