当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。