gpt4 book ai didi

module - 子模块上的 Elixir 别名

转载 作者:行者123 更新时间:2023-12-02 09:49:06 24 4
gpt4 key购买 nike

根据http://elixir-lang.org/getting-started/alias-require-and-import.html#aliases

我应该能够让这段代码工作:

defmodule A do
alias A.B, as: C

defmodule B do
defstruct name: ""
end
end

iex(1)> %C{}

但是我遇到了这个错误:

** (CompileError) iex:1: C.__struct__/0 未定义,无法扩展 struct 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: ""}

关于module - 子模块上的 Elixir 别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34104776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com