Ricerca…


introduzione

I comportamenti sono un elenco di specifiche delle funzioni che possono essere implementate da un altro modulo. Sono simili alle interfacce in altre lingue.

Ecco un esempio di comportamento:

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

E un modulo che lo implementa:

defmodule JSONParser do
  @behaviour Parser

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

L' @behaviour modulo @behaviour alto indica che questo modulo dovrebbe definire ogni funzione definita nel modulo Parser. Le funzioni mancanti comporteranno errori di compilazione delle funzioni comportamentali non definite.

I moduli possono avere più attributi @behaviour .



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow