Sök…


Introduktion

Beteenden är en lista med funktionsspecifikationer som en annan modul kan implementera. De liknar gränssnitt på andra språk.

Här är ett exempel på beteende:

defmodule Parser do
  @callback parse(String.t) :: any
  @callback extensions() :: [String.t]
end

Och en modul som implementerar den:

defmodule JSONParser do
  @behaviour Parser

  def parse(str), do: # ... parse JSON
  def extensions, do: ["json"]
end

@behaviour ovan indikerar att den här modulen förväntas definiera alla funktioner som definieras i Parser-modulen. Funktioner som saknas kommer att resultera i odefinierade kompilationsfel för beteendefunktioner.

Moduler kan ha flera @behaviour attribut.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow