Elixir 派生
2023-12-16 20:43 更新
Elixir允许我们基于Any的实现来派生一个协议实现.让我们先实现Any
:
defimpl Blank, for: Any do
def blank?(_), do: false
end
现在,当定义结构体时,我们能够精确地派生Blank
协议的实现.让我们创造另一个结构体,名为DeriveUser
:
defmodule DeriveUser do
@derive Blank
defstruct name: "john", age: 27
end
当派生的时候,Elixir会基于Any
的实现来为DeriveUser
实现Blank
协议.注意这个行为是选择性加入:注意结构体的协议只可能是明确实现的或派生而来的.
以上内容是否对您有帮助:
更多建议: