W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Elixir允許我們基于Any的實(shí)現(xiàn)來派生一個(gè)協(xié)議實(shí)現(xiàn).讓我們先實(shí)現(xiàn)?Any
?:
defimpl Blank, for: Any do
def blank?(_), do: false
end
現(xiàn)在,當(dāng)定義結(jié)構(gòu)體時(shí),我們能夠精確地派生?Blank
?協(xié)議的實(shí)現(xiàn).讓我們創(chuàng)造另一個(gè)結(jié)構(gòu)體,名為?DeriveUser
?:
defmodule DeriveUser do
@derive Blank
defstruct name: "john", age: 27
end
當(dāng)派生的時(shí)候,Elixir會(huì)基于Any
的實(shí)現(xiàn)來為DeriveUser
實(shí)現(xiàn)Blank
協(xié)議.注意這個(gè)行為是選擇性加入:注意結(jié)構(gòu)體的協(xié)議只可能是明確實(shí)現(xiàn)的或派生而來的.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: