Я могу зарегистрировать атрибут модуля с параметром накопить как true, как это
Module.register_attribute __MODULE__, :structs, accumulate: true
for line <- [%{"some" => %{"test1" => 1, "test2" => 2}}, %{"some" => %{"test1" => 3, "test2" => 4}}] do
@structs %Struct{
some: line["some"]
}
end
Тогда у меня есть следующий список.
[
%Test.Struct{some: %{"test1" => 3, "test2" => 4}},
%Test.Struct{some: %{"test1" => 1, "test2" => 2}}
]
Но что, если я хочу получитькарта?Как этого достичь?
Я попробовал следующее, чтобы определить @tests[v]
, но не будет работать
Module.register_attribute __MODULE__, :tests, accumulate: true
@moduledoc """
for line <- [%{"some" => %{"test1" => 1, "test2" => 2}}, %{"some" => %{"test1" => 3, "test2" => 4}}] do
Enum.each(line["some"], fn {k, v} ->
@tests[v] %Struct{
some: k
}
end)
end