我试图通过模式匹配来获取一个元素和地图的其余部分,但我只会遇到编译错误。
我想出了这个:
%{“One” => one | tail} = %{“One" => 1, "Three" => 3, "Two" => 2}
但我收到编译错误,说它是预期的键值对。
我试图实现的行为是:
%{“One” => one | tail} = %{“One" => 1, "Three" => 3, "Two" => 2}
one = 1
tail = %{"Three" => 3, "Two" => 2}
在灵药中,有一种方法可以完成吗?
答案 0 :(得分:0)
从版本1.6开始,Elixir中没有此语法,但如果您只想一次从地图中删除一个值,则可以使用Map.pop/2
:
iex(1)> {one, tail} = Map.pop(%{"One" => 1, "Three" => 3, "Two" => 2}, "One")
{1, %{"Three" => 3, "Two" => 2}}
iex(2)> one
1
iex(3)> tail
%{"Three" => 3, "Two" => 2}