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也为创建一个工单吗?似乎是函数主体的

(cljs.core/MapEntry. k v nil)

0
by
参考资料:https://clojure.atlassian.net/browse/CLJ-2339(由jcr报告)
...