与固定变量匹配的模式失败

时间:2017-11-03 11:45:18

标签: elixir

为什么这种模式匹配通过:

%{"asd" => %{}} = %{"asd" => %{"qwe" => ""}}

虽然这个没有(MatchError):

x = %{} %{"asd" => ^x} = %{"asd" => %{"qwe" => ""}}

编辑:发现pin运算符意味着它必须等于。现在,我如何匹配到此地图中的x变量?

1 个答案:

答案 0 :(得分:1)

根据定义,左侧的固定变量值必须等于右侧的相应值(tutorial)。

以下匹配将起作用:

x = %{"qwe" => ""}
%{"asd" => ^x} = %{"asd" => %{"qwe" => ""}}

提供x任何其他值,匹配将失败并显示MatchError

指定x只省略pin运算符,即删除^