サーチ…


前書き

ビヘイビアは、別のモジュールが実装できる関数仕様のリストです。それらは他の言語のインタフェースに似ています。

次に動作例を示します。

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モジュール属性は、このモジュールがParserモジュールで定義されたすべての関数を定義することが期待されることを示します。機能が不足すると、定義されていない動作関数のコンパイルエラーが発生します。

モジュールは、複数持つことができます@behaviour属性を。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow