在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/網(wǎng)絡(luò)安全/ 關(guān)于Erlang中的behaviour

關(guān)于Erlang中的behaviour

假如在一個behaviour模塊中定義了一組callback,那么在實現(xiàn)這個behaviour的模塊中,是必須全部實現(xiàn)所有的callback呢,還是可以只實現(xiàn)部分自己需要的callback呢?

回答
編輯回答
笑忘初

Elixir中如果只實現(xiàn)Behaviour中的部分callback,就會出現(xiàn)一個警告,所以原則上是要全部實現(xiàn)的。
下面是一個示例:

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

不過這沒有問題,因為behaviour就是一個協(xié)議,定義這個類型應(yīng)該實現(xiàn)哪些函數(shù)。

2017年3月28日 02:29