Поиск…


Вступление

Поведение - это список спецификаций функций, которые может реализовать другой модуль. Они похожи на интерфейсы на других языках.

Вот пример поведения:

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

И модуль, который его реализует:

defmodule JSONParser do
  @behaviour Parser

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

@behaviour модуля @behaviour выше указывает, что этот модуль должен определять каждую функцию, определенную в модуле Parser. Отсутствующие функции приведут к ошибкам компиляции неопределенных ошибок функции.

Модули могут иметь несколько атрибутов @behaviour .



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow