Erlang中文手册(Erldoc.com)  »  proplists  »  append_values/2
Erlang并发编程 Erlang/OTP设计原理 Erlang/OTP[pdf] Mnesia用户手册[pdf] Erlang完整手册[en] 官网手册[en] 模块列表 方法列表 随机 Erlang中文社区(BBS) 美女图库

proplists:append_values/2

把列表里所有相同键的值追加起来

用法:

append_values(Key, ListIn) -> ListOut

内部实现:

-spec append_values(Key, ListIn) -> ListOut when
      Key :: term(),
      ListIn :: [term()],
      ListOut :: [term()].

append_values(Key, [P | Ps]) ->
    if is_atom(P), P =:= Key ->
	    [true | append_values(Key, Ps)];
       tuple_size(P) >= 1, element(1, P) =:= Key ->
	    case P of
		{_, Value} when is_list(Value) ->
		    Value ++ append_values(Key, Ps);
		{_, Value} ->
		    [Value | append_values(Key, Ps)];
		_ ->
		    append_values(Key, Ps)
	    end;
       true ->
	    append_values(Key, Ps)
    end;
append_values(_Key, []) ->
    [].

把列表 ListIn 所有相同的键 Key 的值追加起来,这个函数跟 proplists:get_all_values/2 类似。不同的是键里的每个值都包含在一个列表里(除它本身是一个列表之外)。

proplists:append_values(a, [{a, [1, 2]}, {b, 0}, {a, 3}, {c, -1}, {a, [4]}]).
proplists:append_values(a, [{a, 1}, {b, 2}, {a, 3}, {c, -4}, {d, 5}]).
阿里云 - 最高1000元通用代金券立即可用
沪ICP备13037221号-9