您如何将[%{"hello" => 123}]
转换为%{"hello" => 123}
?
我可以Enum.at(map, 0)
但看起来并不好。
答案 0 :(得分:4)
您可以使用模式匹配:
iex(1)> [map] = [%{"hello" => 123}]
iex(2)> map
# => %{"hello" => 123}
或
iex(1)> [%{"hello" => value} = map] = [%{"hello" => 123}]
iex(2)> map
# => %{"hello" => 123}
iex(3)> value
# => 123
如果您需要"hello"
密钥的值。
答案 1 :(得分:3)
虽然@guitarman的答案是完全正确的,但还有Kernel.hd/1
而不是列表的头部:
iex> [%{"hello" => 123}] |> hd()
%{"hello" => 123}
区别在于一个元素列表([map] =
)的模式匹配会在空列表上引发MatchError
(上面引发ArgumentError
),后者将成功返回列表包含多个元素时的值。