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

免费 AI IDE


更多建议: