【发布时间】:2026-02-22 14:20:05
【问题描述】:
我有一个由函数 make_struct 返回的结构,就像这样:
%Example.Struct{example: 1, example_again: 2}
(即不带括号,例如:[ %Example... ]),至少我认为它会像上面一样返回,但该函数位于 GenServer 模块中,有时我注意到我的函数由于某种原因返回列表中的值,但我没有没看懂?
我想返回这些结构的列表:
def foo(data_as_a_list) do
my_list = []
for entry <- data_as_a_list do
my_list = [ make_struct(entry) | my_list ]
end
end
这将返回一个结构列表,每个结构都在一个列表中:
[
[
%Example.Struct{example: 1, example_again: 2}
],
[
%Example.Struct{example: 1, example_again: 2}
]
]
我只想:
[
%Example.Struct{example: 1, example_again: 2},
%Example.Struct{example: 1, example_again: 2}
]
【问题讨论】:
-
注意如果
Enum.map(data_as_list, fn entry -> make_struct(entry) end),那么我得到了我想要的列表,但我仍然不明白为什么我上面的方法返回一个列表中每个结构的列表?
标签: elixir