defmodule Parser do
@callback parse(String.t) :: {:ok, term} | {:error, String.t}
@callback ext() :: String.t
end
defmodule JSONParser do
@behaviour Parser
def parse(tpl) do
{:ok, %{}}
end
end
warning: undefined behaviour function ext/0 (for behaviour Parser)
lib/a.ex:7
在
Elixir
中如果只实现Behaviour中的部分callback,就会出现一个警告,所以原则上是要全部实现的。下面是一个示例:
不过这没有问题,因为behaviour就是一个协议,定义这个类型应该实现哪些函数。