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


Elixir Kernel.defdelegate用法及代碼示例


Elixir語言中 Kernel.defdelegate 相關用法介紹如下。

用法:

defdelegate(funs, opts)
(宏)

定義一個委托給另一個模塊的函數。

defdelegate/2 定義的函數是公共的,可以從定義它們的模塊外部調用,就好像它們是使用 def/2 定義的一樣。因此, defdelegate/2 是關於擴展當前模塊的公共 API。如果您想要調用在另一個模塊中定義的函數而不使用其完整的模塊名稱,則使用 alias/2 縮短模塊名稱或使用 import/2 以便能夠完全調用沒有模塊名稱的函數。

委托僅適用於函數;不支持委派宏。

檢查 def/2 以了解命名和默認參數的規則。

選項

  • :to - 要分派到的模塊。

  • :as - 調用 :to 中給出的目標的函數。此參數是可選的,默認為被委派的名稱 (funs)。

例子

defmodule MyList do
  defdelegate reverse(list), to: Enum
  defdelegate other_reverse(list), to: Enum, as: :reverse
end

MyList.reverse([1, 2, 3])
#=> [3, 2, 1]

MyList.other_reverse([1, 2, 3])
#=> [3, 2, 1]

相關用法


注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Kernel.defdelegate(funs, opts)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。