> Erlang中文手册 > expand/2 把特定的属性扩展到对应的属性集合

proplists:expand/2

把特定的属性扩展到对应的属性集合

用法:

expand(Expansions, ListIn) -> ListOut

把特定的属性扩展到对应的属性集合(或其他 Erlang 项)。参数 Expansions 里的每一个元组对 {Property, Expansion},如果 E 是列表里有相同键 Property 的第一个条目,且 E 和 Property 拥有同等的标准数据形式,那么 E 被 Expansion 替换,且接下来拥有相同键的调用将从列表里被删除。

proplists:expand([{foo, [bar, baz]}], [fie, foo, fum]).
proplists:expand([{{foo, true}, [bar, baz]}], [fie, foo, fum]).
proplists:expand([{{foo, false}, [bar, baz]}], [fie, {foo, false}, fum]).

下面的调用不会扩展,因为 {foo, false} 不等于 {foo, true}。

proplists:expand([{{foo, true}, [bar, baz]}], [{foo, false}, fie, foo, fum]).

Note:扩展后,如果在返回的结果里还保留着原始的属性项,那么肯定是 expansion 列表里包含有。被插入的项值不是递归扩展。如果 Expansions 里含有多个相同键的属性,那么只有第一个会被使用。