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

Khadi:还需要考虑cloj\cljs的可移植性问题。说到这...

Alex:我应该为clojurescript也创建一个工单吗?看来函数的主体会是

(cljs.core/MapEntry. k v nil)

0
by
...