我有一个返回从List(:erlang.memory())转换的Map的函数。它可以按我预期的那样工作,但是看起来并不漂亮。如何将代码段精炼成更灵丹妙药的方式(意味着更漂亮的逻辑)?
{{:total, total}, {:processes, processes}, {:processes_used, processes_used}, {:system, system}, {:atom, atom}, {:atom_used, atom_used}, {:binary, binary}, {:code, code}, {:ets, ets}} =
:erlang.memory()
|> List.to_tuple()
params = %{
total: total,
processes: processes,
}
最佳答案
iex(1)> :erlang.memory()
[total: 20258296, processes: 5377080, processes_used: 5370936, system: 14881216,
atom: 264529, atom_used: 255982, binary: 72440, code: 6322711, ets: 335736]
iex(2)> :erlang.memory() |> Enum.into(%{})
%{atom: 264529, atom_used: 259196, binary: 149136, code: 6564510, ets: 347720,
processes: 5518032, processes_used: 5516752, system: 15248920,
total: 20766952}
Enum.into/2
进行了救援。注意:请也参考下面@Dogbert的宝贵意见。