W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
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)的或派生而來的.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: