【发布时间】:2018-07-30 17:08:41
【问题描述】:
如何在具有字符串键的地图上进行模式匹配?
iex(1)> my_map = %{"key1" => "var1"}
%{"key1" => "var1"}
iex(2)> %{aa => bb} = my_map
** (CompileError) iex:2: illegal use of variable aa inside map key match, maps can only match on existing variable by using ^aa
(stdlib) lists.erl:1354: :lists.mapfoldl/3
iex(2)> %{"aa" => bb} = my_map
** (MatchError) no match of right hand side value: %{"key1" => "var1"}
【问题讨论】:
-
你的意思是
%{"key1" => bb} = my_map?如果您想匹配任意键,那么这是不可能的,就像第一条错误消息所说的那样。 -
@Dogbert,我想匹配一组键中的一个。
-
@Dogbert,或者可能不知道密钥的确切名称,我怎样才能得到它的名字?
-
您的地图是否保证只包含 1 个条目?如果没有,你想要哪一个?
-
@Dogbert,保证
标签: elixir