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 Function.identity用法及代碼示例
- Elixir Function.info用法及代碼示例
- Elixir Function.capture用法及代碼示例
- 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。