當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


erlang fold(Fun, Init, MapOrIter)用法及代碼示例


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.org大神的英文原創作品 fold(Fun, Init, MapOrIter) -> Acc。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。