수색…


소개

동작은 다른 모듈에서 구현할 수있는 기능 사양 목록입니다. 다른 언어의 인터페이스와 비슷합니다.

다음은 예제 동작입니다.

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