1}, maps:put("a", 42, Map), maps:put("b", 1337, Map), io-6ren">
gpt4 book ai didi

erlang - map :put(Key, 值, map )在 erlang 中不起作用

转载 作者:行者123 更新时间:2023-12-02 19:39:32 27 4
gpt4 key购买 nike

maps:put(key,value,Map) 不起作用

Map = #{"a" => 1},
maps:put("a", 42, Map),
maps:put("b", 1337, Map),
io:fwrite("~p~n",[Map]).

输出#

{"a" => 1}

为什么我无法获得输出#{"a"=> 42,"b"=> 1337}

最佳答案

maps:put/3 function返回一张新 map 。如果您在第一次 maps:put/3 调用后再次查看该变量,您会发现它不会改变 Map:

1> Map = #{"a" => 1}.
#{"a" => 1}.
2> maps:put("a", 42, Map).
#{"a" => 42}
3> Map.
#{"a" => 1}

如您所见,Map 保留其初始值。

要解决此问题,您需要将 maps:put/3 返回值捕获到新变量中:

4> Map1 = maps:put("a", 42, Map).
#{"a" => 42}
5> Map2 = maps:put("b", 1337, Map1).
#{"a" => 42,"b" => 1337}

现在变量 Map2 具有您要查找的值。

关于erlang - map :put(Key, 值, map )在 erlang 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60443183/

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