Elixir Language
beteenden
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