filtermap(Fun, MapOrIter) -> Map
OTP 24.0
类型:
Fun = fun((Key, Value1) -> boolean() | {true, Value2})
MapOrIter = #{Key => Value1} | iterator(Key, Value1)
Map = #{Key => Value1 | Value2}
返回映射 Map
,它是对每个 Key
调用 Fun(Key, Value1)
到 MapOrIter
中以任意顺序值 Value1
关联的结果。
如果 Fun(Key, Value1)
返回 true
,则关联将被复制到结果映射中。如果它返回 false
,则不会复制关联。如果返回 {true, NewValue}
,则结果映射中 Key
的值将替换为 NewValue
。
如果 MapOrIter
不是映射或有效迭代器,则调用失败,并出现 {badmap,Map}
异常;如果 Fun
不是 arity 2 的函数,则调用失败,并出现 badarg
异常。
例子:
> Fun = fun(K,V) when is_atom(K) -> {true, V*2}; (_,V) -> (V rem 2) =:= 0 end,
Map = #{k1 => 1, "k2" => 2, "k3" => 3},
maps:filtermap(Fun,Map).
#{k1 => 2,"k2" => 2}
相关用法
- erlang filtermap(Fun, Q1)用法及代码示例
- erlang filtermap(Fun, List1)用法及代码示例
- erlang filter(Fun, Q1 :: queue(Item))用法及代码示例
- erlang filter(Pred, Orddict1)用法及代码示例
- erlang filter(Pred, MapOrIter)用法及代码示例
- erlang file_read用法及代码示例
- erlang file_size用法及代码示例
- erlang find用法及代码示例
- erlang find(Key, Orddict)用法及代码示例
- erlang find(Key, Map)用法及代码示例
- erlang find(String, SearchPattern)用法及代码示例
- erlang field(BinRel)用法及代码示例
- erlang float用法及代码示例
- erlang from_list用法及代码示例
- erlang fun2ms(LiteralFun)用法及代码示例
- erlang float(Number)用法及代码示例
- erlang float_to_binary(Float, Options)用法及代码示例
- erlang float_to_list(Float, Options)用法及代码示例
- erlang floor(Number)用法及代码示例
- erlang fun_to_list(Fun)用法及代码示例
- erlang fold(Fun, Acc0, Q :: queue(Item))用法及代码示例
- erlang fetch(Key, Orddict)用法及代码示例
- erlang fetch_keys(Orddict)用法及代码示例
- erlang fold(Fun, Acc0, Orddict)用法及代码示例
- erlang foldl(Fun, Acc0, Archive)用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 filtermap(Fun, MapOrIter) -> Map。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。