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协议.注意这个行为是选择性加入:注意结构体的协议只可能是明确实现的或派生而来的.


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号