dict
模块
dict
模块摘要
键值字典
描述
此模块提供了一个Key---Value字典。没有定义字典的表示形式。
该模块提供与模块相同的接口orddict(3)。一个区别是,虽然这个模块如果不匹配(=:=)时orddict认为两个密钥不同,但只要它们不比较equal(==),就认为两个密钥不同。
数据类型
dict(Key, Value)
返回的字典new/0...
dict() =dict(term(), term())
输出
append(Key, Value, Dict1) -> Dict2
类型
Value在与当前值关联的列表中追加一个新值Key。
另见部分Notes。
append_list(Key, ValList, Dict1) -> Dict2
类型
将值列表追加ValList到与当前值相关的值列表中Key。如果与之相关的初始值Key不是值列表,则会生成异常。
另见部分Notes...
erase(Key, Dict1) -> Dict2
类型
从字典中删除所有具有给定密钥的项。
fetch(Key, Dict) -> Value
类型
返回与Key词典中相关的值Dict。该函数假定Key存在于字典中Dict,并且如果Key不在字典中则会生成异常。
另见部分Notes...
fetch_keys(Dict) -> Keys
类型
返回字典中所有键的列表Dict。
take(Key, Dict) -> {Value, Dict1} | error
类型
此函数返回字典中的值和不带此值的新字典。如果密钥不在字典中,则返回error。
filter(Pred, Dict1) -> Dict2
类型
Dict2是Dict1中Pred(Key,Value)为真的所有键和值的字典。
find(Key, Dict) -> {ok, Value} | error
类型
在字典词典中搜索密钥。 返回{ok,Value},其中Value是与Key关联的值,或者如果该关键字不存在于字典中,则返回错误。
另见部分Notes...
old(Fun, Acc0, Dict) -> Acc1
类型
在字典Dict的连续键和值上连同额外参数Acc(累加器的缩写)一起调用Fun。 乐趣必须返回传递给下一个呼叫的新累加器。 如果字典为空,则返回Acc0。 评估顺序未定义。
from_list(List) -> Dict
类型
转换Key---Value列单List词典Dict...
is_empty(Dict) -> boolean()
类型
如果字典Dict没有元素,则返回true,否则返回false。
is_key(Key, Dict) -> boolean()
类型
测试如果Key包含在字典中Dict...
map(Fun, Dict1) -> Dict2
类型
在连续的键和字典Dict1的值上调用Fun以为每个键返回一个新值。 评估顺序未定义。
merge(Fun, Dict1, Dict2) -> Dict3
类型
合并两个字典Dict1和Dict2,以创建一个新字典。 来自两个词典的所有键值对都包含在新词典中。 如果在两个字典中都出现密钥,则使用密钥调用Fun,并使用这两个值返回新值。 合并可以定义如下,但更快:
merge(Fun, D1, D2) ->
fold(fun (K, V1, D) ->
update(K, fun (V2) -> Fun(K, V1, V2) end, V1, D)
end, D2, D1).new() -> dict()
创建一本新字典。
size(Dict) -> integer() >= 0
类型
返回字典中元素的数量Dict。
store(Key, Value, Dict1) -> Dict2
类型
在词典Dict2中存储键值对。 如果Key已经存在于Dict1中,则相关值将被替换为Value。
to_list(Dict) -> List
类型
将字典转换Dict为列表表示。
update(Key, Fun, Dict1) -> Dict2
类型
通过调用Fun在这个值上得到一个新的值。如果出现异常,则生成异常。Key不在字典里。
update(Key, Fun, Initial, Dict1) -> Dict2
类型
通过对该值调用Fun来更新字典中的值以获取新值。 如果字典中不存在密钥,则初始值将作为第一个值存储。 例如,append / 3可以定义为:
append(Key, Val, D) ->
update(Key, fun (Old) -> Old ++ [Val] end, [Val], D).update_counter(Key, Increment, Dict1) -> Dict2
类型
添加Increment到与此值关联Key并存储该值的值。如果Key不存在于字典中,Increment则存储为第一个值。
这可以定义如下,但速度更快:
update_counter(Key, Incr, D) ->
update(Key, fun (Old) -> Old + Incr end, Incr, D).注记
功能append和append_list,以便将键控值存储在列表中。累加器,例如:
> D0 = dict:new(),
D1 = dict:store(files, [], D0),
D2 = dict:append(files, f1, D1),
D3 = dict:append(files, f2, D2),
D4 = dict:append(files, f3, D3),
dict:fetch(files, D4).
[f1,f2,f3]这样就省去了首先获取键控值、在存储值列表中追加新值和存储结果的麻烦。
如果已知密钥在字典中,则使用函数提取,否则使用函数查找。
另见
gb_trees(3),orddict(3)
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com

