Elixir語言中 Function.info 相關用法介紹如下。
用法一
info(fun)
(從 1.7.0 開始)
@spec info((... -> any())) :: [{information(), term()}]
返回包含函數信息的關鍵字列表。
所有類型的函數(本地和外部)的返回鍵(具有相應的可能值)如下:
- 
:type-:local(用於匿名函數)或:external(用於命名函數)。 - 
:module- 一個原子,它是匿名時定義函數的模塊,或者是命名函數時函數引用的模塊。 - 
:arity- (整數)調用函數的參數數量。 - 
:name- (原子)函數的名稱。 - 
:env- 環境或自由變量的列表。對於命名函數,返回的列表始終為空。 
當 fun 是匿名函數(即類型為 :local )時,返回以下附加鍵:
- 
:pid- 最初創建函數的進程的 PID。 - 
:index- (整數)模塊函數表的索引。 - 
:new_index- (整數)模塊函數表的索引。 - 
:new_uniq-(二進製)此函數的唯一值。它是根據整個模塊的編譯代碼計算得出的。 - 
:uniq- (整數)此函數的唯一值。這個整數是從整個模塊的編譯代碼中計算出來的。 
注意:此函數隻能用於調試目的。
由編譯器內聯。
例子
iex> fun = fn x -> x end
iex> info = Function.info(fun)
iex> Keyword.get(info, :arity)
1
iex> Keyword.get(info, :type)
:local
iex> fun = &String.length/1
iex> info = Function.info(fun)
iex> Keyword.get(info, :type)
:external
iex> Keyword.get(info, :name)
:length
用法二
info(fun, item)
(從 1.7.0 開始)
@spec info((... -> any()), item) :: {item, term()} when item: information()
返回有關函數的特定信息。
返回的信息是 {info, value} 形狀的二元素元組。
對於任何函數,要求的信息可以是任何原子 :module 、 :name 、 :arity 、 :env 或 :type 。
對於匿名函數,還有關於任何原子 :index 、 :new_index 、 :new_uniq 、 :uniq 和 :pid 的信息。對於命名函數,任何這些項的值始終是原子 :undefined 。
有關每個可能的返回值的更多信息,請參閱   。info/1 
由編譯器內聯。
例子
iex> f = fn x -> x end
iex> Function.info(f, :arity)
{:arity, 1}
iex> Function.info(f, :type)
{:type, :local}
iex> fun = &String.length/1
iex> Function.info(fun, :name)
{:name, :length}
iex> Function.info(fun, :pid)
{:pid, :undefined}
相關用法
- Elixir Function.identity用法及代碼示例
 - Elixir Function.capture用法及代碼示例
 - Elixir Function用法及代碼示例
 - Elixir Float.to_charlist用法及代碼示例
 - Elixir Float.ratio用法及代碼示例
 - Elixir File.cp_r用法及代碼示例
 - Elixir File.rm用法及代碼示例
 - Elixir Float.to_string用法及代碼示例
 - Elixir File.rmdir用法及代碼示例
 - Elixir File.exists?用法及代碼示例
 - Elixir File用法及代碼示例
 - Elixir File.touch!用法及代碼示例
 - Elixir File.stream!用法及代碼示例
 - Elixir File.rename用法及代碼示例
 - Elixir File.open用法及代碼示例
 - Elixir Float.ceil用法及代碼示例
 - Elixir Float.pow用法及代碼示例
 - Elixir File.rm_rf用法及代碼示例
 - Elixir File.regular?用法及代碼示例
 - Elixir File.touch用法及代碼示例
 - Elixir Float.round用法及代碼示例
 - Elixir Float.floor用法及代碼示例
 - Elixir File.dir?用法及代碼示例
 - Elixir Float.parse用法及代碼示例
 - Elixir StringIO.flush用法及代碼示例
 
注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Function.info(fun)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
