Elixir语言中 Kernel.defdelegate
相关用法介绍如下。
用法:
defdelegate(funs, opts)
(宏)
定义一个委托给另一个模块的函数。
用
定义的函数是公共的,可以从定义它们的模块外部调用,就好像它们是使用 defdelegate/2
定义的一样。因此,def/2
是关于扩展当前模块的公共 API。如果您想要调用在另一个模块中定义的函数而不使用其完整的模块名称,则使用defdelegate/2
缩短模块名称或使用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 Kernel.defexception用法及代码示例
- Elixir Kernel.defmodule用法及代码示例
- Elixir Kernel.defmacro用法及代码示例
- Elixir Kernel.defguard用法及代码示例
- Elixir Kernel.defoverridable用法及代码示例
- Elixir Kernel.defstruct用法及代码示例
- Elixir Kernel.defp用法及代码示例
- Elixir Kernel.def用法及代码示例
- Elixir Kernel.destructure用法及代码示例
- Elixir Kernel.div用法及代码示例
- 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.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-lang.org大神的英文原创作品 Kernel.defdelegate(funs, opts)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。