Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
映射:put(键、值、映射)在erlang中不起作用_Erlang - Fatal编程技术网

映射:put(键、值、映射)在erlang中不起作用

映射:put(键、值、映射)在erlang中不起作用,erlang,Erlang,映射:放置(键、值、映射)不工作 Map = #{"a" => 1}, maps:put("a", 42, Map), maps:put("b", 1337, Map), io:fwrite("~p~n",[Map]). 输出# 为什么我不能得到输出#{“a”=>42,“b”=>1337}?返回一个新的映射。如果在第一个Map:put/3call: 1> Map = #{"a" => 1}. #{"a" => 1}. 2> maps:put("a", 42, Ma

映射:放置(键、值、映射)
不工作

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

为什么我不能得到输出#
{“a”=>42,“b”=>1337}

返回一个新的映射。如果在第一个
Map:put/3
call:

1> Map = #{"a" => 1}.
#{"a" => 1}.
2> maps:put("a", 42, Map).
#{"a" => 42}
3> Map.
#{"a" => 1}
如您所见,
Map
保留其初始值

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

4> Map1 = maps:put("a", 42, Map).
#{"a" => 42}
5> Map2 = maps:put("b", 1337, Map1).
#{"a" => 42,"b" => 1337}
现在变量
Map2
具有您要查找的值。

侧注:中的所有对象都是不可变的。不能期望修改任何对象。一旦被创造,它将永远存在。
4> Map1 = maps:put("a", 42, Map).
#{"a" => 42}
5> Map2 = maps:put("b", 1337, Map1).
#{"a" => 42,"b" => 1337}