2024 Clojure 状态调查! 中分享您的想法。

欢迎!请查看 关于 页面以了解更多此网站的信息。

0
Clojure
从 1.8 版本开始,我们有了 {{map-entry?}} 断言,但没有相应的构造函数。实现可能非常简单,例如


(defn map-entry
  "创建一个新的具有键 k 和值 v 的映射条目。

  另请参阅:map-entry?, key, val"
  [k v]
  (clojure.lang.MapEntry/create k v))

5 个答案

0

评论来自:mfikes

可能此类构造函数的存在会对使用这种构造函数的用户产生影响。

`
user=> (let [me (first (sorted-map :a 1))]

     [(map-entry? me) (type me)])

[true clojure.lang.PersistentTreeMap$BlackVal]
`

0

评论来自:gshayban

我没有看出这个点。拥有一个映射条目构造函数能有什么好处?

0

评论来自:alexmiller

Mike:不,我不认为这很重要

Ghadi:有代码在野外调用 MapEntry/create,因为在某些情况下它会更快 - 这当然会更好。

0

评论由:jcr 发布

Ghadi:另一个考虑因素是clj\cljs的可移植性。说到这个...

Alex:我应该为clojurescript创建一个ticket吗?似乎函数的主体是

(cljs.core/MapEntry. k v nil)

0
...