Module 子模块上的Elixir别名

Module 子模块上的Elixir别名,module,alias,elixir,Module,Alias,Elixir,据 我应该能够使此代码正常工作: defmodule A do alias A.B, as: C defmodule B do defstruct name: "" end end iex(1)>%C{} 但我却有一个错误: **(CompileError)iex:1:C.\uuu结构\uuu/0未定义,无法展开结构C 你知道我错过了什么吗 编辑:对于示例,此处简化了模块命名这仅适用于定义别名的模块,例如: defmodule A do alias A.B, as:

我应该能够使此代码正常工作:

defmodule A do
  alias A.B, as: C

  defmodule B do
    defstruct name: ""
  end
end
iex(1)>%C{}

但我却有一个错误:

**(CompileError)iex:1:C.\uuu结构\uuu/0未定义,无法展开结构C

你知道我错过了什么吗


编辑:对于示例,此处简化了模块命名

这仅适用于定义别名的模块,例如:

defmodule A do
  alias A.B, as: C

  defmodule B do
    defstruct name: ""
  end

  def new do
    %C{}
  end
end
然后你可以做:

iex(6)> A.new
%A.B{name: ""}
如果您在iex中键入别名,这也会起作用:

iex(7)> alias A.B, as: C
nil
iex(8)> %C{}
%A.B{name: ""}