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}]).