Recherche…


introduction

Les comportements sont une liste de spécifications de fonctions qu'un autre module peut implémenter. Ils sont similaires aux interfaces dans d'autres langues.

Voici un exemple de comportement:

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

Et un module qui l'implémente:

defmodule JSONParser do
  @behaviour Parser

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

L' @behaviour module @behaviour ci-dessus indique que ce module est censé définir toutes les fonctions définies dans le module Analyseur. Les fonctions manquantes entraîneront des erreurs de compilation de fonctions de comportement non définies.

Les modules peuvent avoir plusieurs attributs @behaviour .



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow