Buscar..


Introducción

Los comportamientos son una lista de especificaciones de funciones que otro módulo puede implementar. Son similares a las interfaces en otros idiomas.

Aquí hay un ejemplo de comportamiento:

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

Y un módulo que lo implementa:

defmodule JSONParser do
  @behaviour Parser

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

El @behaviour módulo @behaviour anterior indica que se espera que este módulo defina cada función definida en el módulo de análisis. Las funciones que faltan darán como resultado errores de compilación de la función de comportamiento indefinido.

Los módulos pueden tener múltiples atributos de @behaviour .



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow