Szukaj…


Wprowadzenie

Zachowania to lista specyfikacji funkcji, które może implementować inny moduł. Są one podobne do interfejsów w innych językach.

Oto przykładowe zachowanie:

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

I moduł, który to implementuje:

defmodule JSONParser do
  @behaviour Parser

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

@behaviour atrybut @behaviour modułu wskazuje, że ten moduł ma definiować każdą funkcję zdefiniowaną w module Parsera. Brakujące funkcje spowodują nieokreślone błędy kompilacji funkcji zachowania.

Moduły mogą mieć wiele atrybutów @behaviour .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow