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


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


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