码迷,mamicode.com
首页 > 其他好文 > 详细

Erlang 标准库 maps

时间:2015-11-16 15:45:16      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

new() -> #{}

返回一个新的空映射组。

1> maps:new().

#{}

to_list(M) -> [{K1,V1}, ...,{Kn,Vn}]

把映射组 M 里的所有键和值转换成一个键值列表。键在生成的列表里严格按升序排列。

1> M = #{ age => 18, name => dmm }.

#{age => 18,name => dmm}

2> maps:to_list(M).

[{age,18},{name,dmm}]

from_list([{K1,V1},...,{Kn,Vn}]) -> M

把一个包含键值对的列表转换成映射组 M。如果同样的键不止一次出现,就使用列表里最后一个所关联的值,前面的值都会被忽略。

1> T = [{age,18},{name,dmm},{age,19}].

[{age,18},{name,dmm},{age,19}]

2> maps:from_list(T).

#{age => 19,name => dmm}

size(Map) -> integer() >= 0

返回映射组里的条目数量。

1> Map = #{42 => value_two,1337 => "value one","a" => 1}.

#{42 => value_two,1337 => "value one","a" => 1}

2> maps:size(Map).

3

is_key(Key, Map) -> bool()

如果映射组包含一个键为 Key 的项就返回 true,否则返回 false。

1> Map = #{"42" => value}.

#{"42" => value}

2> maps:is_key("42",Map).

true

3> maps:is_key(value,Map).

false

get(Key, Map) -> val

返回映射组里与 Key 关联的值,否则抛出一个异常错误。

1> Map = #{42 => value_two,1337 => "value one","a" => 1}.

#{42 => value_two,1337 => "value one","a" => 1}

2> maps:get("a",Map).

1

3> maps:get(2,Map). 

** exception error: {badkey,2}

in function maps:get/2

called as maps:get(2,#{42 => value_two,1337 => "value one","a" => 1})

get(Key, Map, Default) -> Value | Default

返回映射组里与 Key 关联的值,如果没有这个 Key 可以抛出默认值。

1> Map = #{ key1 => val1, key2 => val2 }.

#{key1 => val1,key2 => val2}

2> maps:get(key1, Map, "Default value").

val1

3> maps:get(key3, Map, "Default value").

"Default value"

find(Key, Map) -> {ok, Value} | error

返回映射组里与 Key 关联的值,否则返回 error。

1> Map = #{"hi" => 42}. 

#{"hi" => 42}

2> maps:find("hi",Map).

{ok,42}

3> maps:find("HI",Map). 

error

keys(Map) -> [Key1,..KeyN]

返回映射组里所含的键列表,按升序排列。

1> Map = #{42 => value_three,1337 => "value two","a" => 1}.

#{42 => value_three,1337 => "value two","a" => 1}

2> maps:keys(Map).

[42,1337,"a"]

remove(Key, M) -> M1

返回一个新映射组 M1,除了键为 Key 的项被以除外,其他与 M 一致。

1> Map = #{"a" => 1}.

#{"a" => 1}

2> maps:remove("a", Map).

#{}

3> maps:remove("b", Map).

#{"a" => 1}

with([Key1,..,KeyN], Map1) -> Map2

返回一个新的映射组 Map2,它是 Map1 的赋值,但有且只有[Key1, .., KeyN] 列表里的这些键的元素。

1> Map = #{42 => value_three,1337 => "value two","a" => 1}.

#{42 => value_three,1337 => "value two","a" => 1}

2> maps:with(["a",42,"other"],Map).

#{42 => value_three,"a" => 1}

without([Key1,...,KeyN],M) -> M1

返回一个新映射组 M1,它是 M 的复制,但除了带有 [Key1, ..., KeyN] 列表里这些键的元素。

1> Map = #{42 => value_three,1337 => "value two","a" => 1}.

#{42 => value_three,1337 => "value two","a" => 1}

2> maps:without(["a",42,"other"],Map).

#{1337 => "value two"}

Erlang 标准库 maps

标签:

原文地址:http://www.cnblogs.com/mydevops/p/4968833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!