【发布时间】:2017-04-21 07:08:28
【问题描述】:
假设我有两张地图 (m1, m2),预计它们的 kv 对大部分相同,但每个地图可能都有其他条目没有。最终,我想要一个包含两个地图中所有 kv 对的地图,因此我想在高层次上合并它们。
但是,考虑到Map.merge(Erlang BIF)和Map.split(尾递归)的实现,以及期望差异与地图大小成比例的启发式,以下哪个选项更好适合达到预期的结果?
-
首先拆分以找到 m2 唯一的 kv 对,并仅合并那些
... {_duplicateKeys, m2only} = Map.split(m2, Map.keys(m1)) Map.merge(m1, m2only) ... -
或者只是合并,希望实现能够优化构建地图
... Map.merge(m1, m2) ...
【问题讨论】:
-
在您的特定应用程序中,是否可以提前知道哪些条目将被复制,或者将它们放在单独的数据结构中?
标签: dictionary erlang elixir