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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。