Zoeken…


Invoering

Gedrag is een lijst met functiespecificaties die een andere module kan implementeren. Ze zijn vergelijkbaar met interfaces in andere talen.

Hier is een voorbeeldgedrag:

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

En een module die het implementeert:

defmodule JSONParser do
  @behaviour Parser

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

Het @behaviour kenmerk @behaviour module geeft aan dat van deze module wordt verwacht dat deze elke functie definieert die in de Parser-module is gedefinieerd. Ontbrekende functies zullen resulteren in compilatiefouten van ongedefinieerde gedragsfuncties.

Modules kunnen meerdere @behaviour kenmerken hebben.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow