为什么会出现错误——未定义的函数defstruct

Tor*_*ito 3 elixir

我有这个模块,我试图在其中定义一个结构:

defmodule A do
  defmodule B do
    defstruct :id, :name
  end
end
Run Code Online (Sandbox Code Playgroud)

为什么会出错?

undefined function defstruct/2
Run Code Online (Sandbox Code Playgroud)

为什么会出现这个错误呢?

nie*_*aki 5

Elixir 解释defstruct :id, :name为使用2个参数进行调用defstruct,即.undefined function defstruct/2

您想要做的是将单个参数传递给 defstruct,即字段名称列表:

defmodule A do
  defmodule B do
    defstruct [:id, :name]
  end
end
Run Code Online (Sandbox Code Playgroud)