【发布时间】:2018-08-10 01:25:25
【问题描述】:
我只是想知道是否有一种干净的方法可以从 Elixir 的地图中获取“其他”元素。 “其他”是指第二个键值对,我不知道它的键。
示例:%{success: boolean, other => value}
这是我能想到的最好的:
case map do
%{success: true} ->
other = map |> Map.delete(:success) |> Map.values |> List.first
# Do something with other
%{success: false} ->
error = map |> Map.delete(:success) |> Map.values |> List.first
# Do something with error
end
【问题讨论】:
-
要知道“其他”键的名称,可以使用
Map.keys函数并过滤Map.keys(map) |> Enum.reject(&(&1 == :success))
标签: dictionary pattern-matching elixir