當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。