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 <- Props]. substitute_aliases_1([{Key, Key1} | As], 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}]).