fold(Fun, Init, MapOrIter) -> Acc
OTP 17.0
类型:
Fun = fun((Key, Value, AccIn) -> AccOut)
Init = term()
Acc = AccOut
AccIn = Init | AccOut
MapOrIter = #{Key => Value} | iterator(Key, Value)
对每个Key
调用F(Key, Value, AccIn)
,以任意顺序对MapOrIter
中的Value
关联进行赋值。函数 fun F/3
必须返回一个新的累加器,该累加器将传递给下一个连续调用。该函数返回累加器的最终值。如果映射为空,则返回初始累加器值Init
。
如果 MapOrIter
不是映射或有效迭代器,则调用失败,并出现 {badmap,Map}
异常;如果 Fun
不是 arity 3 的函数,则调用失败,并出现 badarg
异常。
例子:
> Fun = fun(K,V,AccIn) when is_list(K) -> AccIn + V end,
Map = #{"k1" => 1, "k2" => 2, "k3" => 3},
maps:fold(Fun,0,Map).
6
相关用法
- erlang fold(Fun, Acc0, Q :: queue(Item))用法及代码示例
- erlang fold(Fun, Acc0, Orddict)用法及代码示例
- erlang fold(Function, Acc0, QH)用法及代码示例
- erlang foldl(Fun, Acc0, Archive)用法及代码示例
- erlang foldl(Fun, Acc0, List)用法及代码示例
- erlang foldr(Fun, Acc0, List)用法及代码示例
- erlang format(Format)用法及代码示例
- erlang format_exception(Class, Reason, StackTrace)用法及代码示例
- erlang float用法及代码示例
- erlang file_read用法及代码示例
- erlang file_size用法及代码示例
- erlang from_list用法及代码示例
- erlang find用法及代码示例
- 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 filter(Fun, Q1 :: queue(Item))用法及代码示例
- erlang filtermap(Fun, Q1)用法及代码示例
- erlang fetch(Key, Orddict)用法及代码示例
- erlang fetch_keys(Orddict)用法及代码示例
- erlang filter(Pred, Orddict1)用法及代码示例
- erlang find(Key, Orddict)用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 fold(Fun, Init, MapOrIter) -> Acc。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。