> Erlang中文手册 > substitute_aliases/2 替换列表里的键

proplists:substitute_aliases/2

替换列表里的键

用法:

substitute_aliases(Aliases, ListIn) -> ListOut

内部实现:

-spec substitute_aliases(Aliases, ListIn) -> ListOut when
      Aliases :: [{Key, Key}],
      Key :: term(),
      ListIn :: [term()],
      ListOut :: [term()].

substitute_aliases(As, Props) ->
    [substitute_aliases_1(As, P) || P 
    if is_atom(P), P =:= Key ->
	    property(Key1, true);
       tuple_size(P) >= 1, element(1, P) =:= Key ->
	    property(setelement(1, P, Key1));
       true ->
	    substitute_aliases_1(As, P)
    end;
substitute_aliases_1([], P) ->
    P.

替换列表里的键。列表里的每一个条目,如果参数 Aliases 是由 {K1, K2} 这种相关联的形式组成的列表,,那么跟键是 K1 的相关条目的键都会改为 K2。如果同样的 K1 不止一次出现在参数 Aliases,那么只有只有第一个会被使用。

proplists:substitute_aliases([{k1, a1}], [{k1, 1}, {k2, 2}, {k1, 3}, {k4, 4}, {k5, 5}]).
proplists:substitute_aliases([{k1, a1}, {k4, a4}], [{k1, 1}, {k2, 2}, {k1, 3}, {k4, 4}, {k5, 5}]).