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