Suche…


Einführung

Verhalten sind eine Liste von Funktionsspezifikationen, die ein anderes Modul implementieren kann. Sie ähneln den Schnittstellen in anderen Sprachen.

Hier ist ein Beispiel für ein Verhalten:

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

Und ein Modul, das es implementiert:

defmodule JSONParser do
  @behaviour Parser

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

Das @behaviour Attribut-Attribut zeigt an, dass dieses Modul jede im Parser-Modul definierte Funktion definieren soll. Fehlende Funktionen führen zu undefinierten Verhaltensfunktionskompilierungsfehlern.

Module können mehrere @behaviour Attribute haben.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow