from my account from/ from the company 分别作是什么成分?

另外如果我使用{:a 1}它给了我一个PersistentArrayMap泹这种变化对任何其他的人,如果我给它的对象或大于键其他的东西

你列出的四种实现分为三类:

  1. “文字”: PersistentArrayMapPersistentHashMap :地图文字打交道时(雖然构造函数也可与周围的处理重复键不同的行为,使用的基本地图类型-用Clojure 1.5.x的文字抛出异常当他们发现重复键,构造函数工作像左向右反复conj ING这种行为已经演变因版本)。 阵图升职增长超过一定数目的条目(9 IIRC)的时候哈希映射 阵图存在,因为它们是针对小型地图快; 他们還从他们之前的宣传保持插入顺序条目哈希散列地图不同的地图(可以使用clojure.core/array-map获得任意大阵的地图如果你真的知道你会受益的,可能是有鼡的从插入顺序遍历和地图也不会过大也许只是有点超过通常的阈值; NB随后assoc于这样的过大的阵列地图将返回哈希映射)。 阵列的地图使用具有键阵列和值交织; 在PHM使用菲尔巴格韦尔的散列阵列的持久版本映射特里结构分离链为哈希冲突和单独的节点类型的主要为空并在-至少半滿的节点是很容易用Clojure最复杂的数据结构。

  2. 特殊用途可能弃用PersistentStructMap不经常使用和赞成不赞成记录大多来看,虽然我实际上不记得现在如果囿曾经是一个正式取消通知 最初的目的是为了提供地图与特别快速访问某些经常使用的按键。 这现在可以使用关键字时进行实地访问与記录完成(:在操作员位置的关键字(:foo

所有这四个内置地图类型分为相同的“平等分区”也就是上面提到的四个类别中的一个的任何两个映射将是相等的,当(且仅当)它们包含相同的键(如通过Clojure的确定= )具有相同的相应的值 记载,在3上面提到的是地图状,但每个记录類型形成了自己的平等分割

他们是不同的实现一个持续的地图(他们都延长APersistentMap )。 因此一个PersistentArrayMap使用数组作为底层数据结构以实现持续映射鉯及类似地其它实施方式中使用不同的基础数据结构同步。

其原因不同的实现是它们提供了在不同情况下不同的好处(作为执行的效率依賴于底层的数据结构)

从开发者的角度来看,它是抽象化了因此你不应该使用它们直接,而是与工作APersistentMap抽象类或IPersistentMap接口(在某些情况下類型检查等需要针对某些特定的情况下)。

根据在图中使用的各种实施方式的元件的数量

我要回帖

更多关于 account from 的文章

 

随机推荐