Elixir 派生

2023-12-16 20:43 更新

Elixir允許我們基于Any的實現(xiàn)來派生一個協(xié)議實現(xiàn).讓我們先實現(xiàn)?Any?:

defimpl Blank, for: Any do
  def blank?(_), do: false
end

現(xiàn)在,當定義結(jié)構(gòu)體時,我們能夠精確地派生?Blank?協(xié)議的實現(xiàn).讓我們創(chuàng)造另一個結(jié)構(gòu)體,名為?DeriveUser?:

defmodule DeriveUser do
  @derive Blank
  defstruct name: "john", age: 27
end

當派生的時候,Elixir會基于Any的實現(xiàn)來為DeriveUser實現(xiàn)Blank協(xié)議.注意這個行為是選擇性加入:注意結(jié)構(gòu)體的協(xié)議只可能是明確實現(xiàn)的或派生而來的.


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號