Elixir中有哪些保留属性?

时间:2018-05-29 20:29:39

标签: elixir keyword

我花了很多时间调查我的代码为什么返回nil:

defmodule Test
  @impl 42
  def foo, do: IO.inspect(@impl)

事实证明@impl是保留的属性名称。好的,经验教训。但是,现在我想知道保留属性关键字的完整列表是什么?我找不到文档。我找到的最接近的是this

  

Elixir有一些保留属性。这里有几个,   最常用的:

@moduledoc - provides documentation for the current module.
@doc - provides documentation for the function or macro that follows the attribute.
@behaviour - (notice the British spelling) used for specifying an OTP or user-defined behaviour.
@before_compile - provides a hook that will be invoked before the module is compiled. This makes it possible to inject functions inside
     

编译之前的模块。

1 个答案:

答案 0 :(得分:2)

这是来自std lib的模块Module的文档。

https://hexdocs.pm/elixir/Module.html#module-module-attributes