Понимание типа возврата dict: выборка на эрланге - PullRequest
0 голосов
/ 17 октября 2018

Я создаю словарь двумя разными способами, затем получаю результат, но у меня есть два разных результата.
Я хотел бы понять, почему.

с использованием dict: append

Dict1 = dict:append(key, value, dict:new()).
dict:fetch(key, Dict1).
% I get a list with the value
[value] 

с использованием dict: from_list

Dict2 = dict:from_list([{ key, value }]).
dict:fetch(key, Dict2).
% I get the value
value

Почему тип возвращаемого значения отличается?
получить документ

1 Ответ

0 голосов
/ 17 октября 2018
Документация

dict:append/3 гласит:

Добавляет новое значение в текущий список значений, связанных с ключом.

Он предназначен для использования, когдаЗначения dict всегда списки.Вы можете видеть, что Dict1 - это диктант от key до [value], тогда как Dict2 - это диктант от key до value:

> dict:to_list(Dict1).
[{key,[value]}]
> dict:to_list(Dict2).
[{key,value}]

Если вы хотите сохранить значениекак есть, а не в списке, вы можете использовать dict:store/3:

> Dict3 = dict:store(key, value, dict:new()).
{dict,1,16,16,8,80,48,
      {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
      {{[],[],[],[],[],[],[],[],[],
        [[key|value]],
        [],[],[],[],[],[]}}}
> dict:fetch(key, Dict3).
value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...