"var1"} %{"key1" => "var1"} iex(2)> %{aa => bb}-6ren">
gpt4 book ai didi

elixir - 以变​​量为键的 map 上的模式匹配

转载 作者:行者123 更新时间:2023-12-02 08:18:51 24 4
gpt4 key购买 nike

如何在具有字符串键的 map 上进行模式匹配?

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"}

最佳答案

如果保证 map 只有 1 个条目(就像您在评论中阐明的那样),您可以将其传递给 Map.to_list/1然后对结果进行模式匹配:

iex(1)> my_map = %{"key1" => "var1"}
%{"key1" => "var1"}
iex(2)> [{key, value}] = Map.to_list(my_map)
[{"key1", "var1"}]
iex(3)> key
"key1"
iex(4)> value
"var1"

关于elixir - 以变​​量为键的 map 上的模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39383209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com