在Erlang中匹配地图

时间:2017-01-21 04:27:16

标签: erlang

我如何在Erlang中这样匹配?

#{o => 0} = maps:put(o, 0, maps:new()).
"Illegal pattern"

从我在erlang shell中可以读到的内容来看,这些值是等价的。为什么我不匹配?

1 个答案:

答案 0 :(得分:5)

=>

符号:=用于创建键值对,符号#{o => 0} == maps:put(o, 0, maps:new()). 1> #{o := 0} = #{o => 0,i => 1}. % will match #{i => 1,o => 0} 2> #{o := 0} = #{o => 2,i => 1}. % will not match ** exception error: no match of right hand side value #{i => 1,o => 2} 3> #{o => 0} == #{o => 0,i => 1}. % is false false 3> 适用于现有键。所以前面的表达式对模式匹配有效,以下内容对比较有效(比较的两边都是等价的):

 <FrameLayout
        android:id="@+id/frame_parent"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />