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 Kernel.abs用法及代碼示例
- Elixir Kernel.SpecialForms.case用法及代碼示例
- Elixir Kernel.round用法及代碼示例
- Elixir Kernel.left / right用法及代碼示例
- Elixir Kernel.put_in用法及代碼示例
- Elixir Kernel.tl用法及代碼示例
- Elixir Kernel.left - right用法及代碼示例
- Elixir Kernel.tuple_size用法及代碼示例
- Elixir Kernel.defexception用法及代碼示例
- Elixir Kernel.to_charlist用法及代碼示例
- Elixir Kernel.base ** exponent用法及代碼示例
- Elixir Kernel.left !== right用法及代碼示例
- Elixir Kernel.if用法及代碼示例
- Elixir Kernel.spawn_monitor用法及代碼示例
- Elixir Kernel.to_string用法及代碼示例
- Elixir Kernel.length用法及代碼示例
- Elixir Kernel.first..last用法及代碼示例
- Elixir Kernel.SpecialForms.%{}用法及代碼示例
- Elixir Kernel.SpecialForms.for用法及代碼示例
- Elixir Kernel.then用法及代碼示例
- Elixir Kernel.spawn用法及代碼示例
- Elixir Kernel.defmodule用法及代碼示例
- Elixir Kernel.SpecialForms.quote用法及代碼示例
- Elixir Kernel.left > right用法及代碼示例
- Elixir Kernel.binding用法及代碼示例
注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Kernel.apply(fun, args)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。