proplists:get_all_values/2
获取指定键的所有值
用法:
get_all_values(Key, List) -> [term()]
内部实现:
-spec get_all_values(Key, List) -> [term()] when Key :: term(), List :: [term()]. get_all_values(Key, [P | Ps]) -> if is_atom(P), P =:= Key -> [true | get_all_values(Key, Ps)]; tuple_size(P) >= 1, element(1, P) =:= Key -> case P of {_, Value} -> [Value | get_all_values(Key, Ps)]; _ -> get_all_values(Key, Ps) end; true -> get_all_values(Key, Ps) end; get_all_values(_Key, []) -> [].
类似 proplists:get_value/2,但是它返回列表 List 里所有格式为 {Key, Value} 的条目的值的列表。如果不存在这种条目,则返回空列表。
List = [{a, 1}, {b, 2}, {b, 3}, {c, 4}, {b, 5}, {d, 6}], proplists:get_all_values(b, List).