理解dict的返回类型:在erlang中获取
我使用两种不同的方法创建字典,然后得到结果,但我有两种不同的结果。理解dict的返回类型:在erlang中获取,erlang,Erlang,我使用两种不同的方法创建字典,然后得到结果,但我有两种不同的结果。 我想知道为什么 使用dict:append 使用dict:from_list 为什么退货类型不同? dict:append/3的文档说明: 将新值追加到与键关联的当前值列表中 当dict的值始终为列表时使用。您可以看到,Dict1是从key到[value]的dict,而Dict2是从key到value的dict: > dict:to_list(Dict1). [{key,[value]}] > dict:to_lis
我想知道为什么 使用dict:append 使用dict:from_list 为什么退货类型不同?
dict:append/3
的文档说明:
将新值追加到与键关联的当前值列表中
当dict的值始终为列表时使用。您可以看到,Dict1
是从key
到[value]
的dict,而Dict2
是从key
到value的dict:
> 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
dict:append/3
的文档说明:
将新值追加到与键关联的当前值列表中
当dict的值始终为列表时使用。您可以看到,Dict1
是从key
到[value]
的dict,而Dict2
是从key
到value的dict:
> 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
谢谢@Dogbert。如果我不知道字典是如何创建的,很难得到真正的值,我需要得到结果,验证是否是列表,获取元素。。。。。你知道一个简单的方法吗?。谢谢。如果值是列表,那么您希望获取列表的第一个元素,否则保留原始值?是的。正是这样。但理想情况下,我想限制每个键只有一个值。谢谢@Dogbert。如果我不知道字典是如何创建的,很难得到真正的值,我需要得到结果,验证是否是列表,获取元素。。。。。你知道一个简单的方法吗?。谢谢。如果值是列表,那么您希望获取列表的第一个元素,否则保留原始值?是的。正是这样。但理想情况下,我希望约束每个键只有一个值。