是什么built-inClojure 方式(如果有)创建单个映射条目?
换句话说,我想要类似的东西(map-entry key value)
。换句话说,结果应该或多或少等于(first {key value})
.
Remarks:
- 当然,我已经尝试过谷歌搜索,只发现地图输入? https://clojuredocs.org/clojure.core/map-entry_q但是,该文档没有链接资源。
- 我知道
(first {1 2})
回报[1 2]
,这似乎是一个向量。然而:
(class (first {1 2}))
; --> clojure.lang.MapEntry
(class [1 2])
; --> clojure.lang.PersistentVector
- 我检查了源代码,我知道两者MapEntry https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/MapEntry.java and 持久向量 https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/PersistentVector.java extend 持久向量 https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/APersistentVector.java (so
MapEntry
或多或少也是一个向量)。然而,问题仍然是,我是否可以创建一个MapEntry
Clojure 代码中的实例。
- 最后但并非最不重要的一点是:“不,Clojure 中没有内置方法可以做到这一点”也是一个有效的答案(我强烈怀疑是这种情况,只是想确保我没有意外错过某些东西)。
“不,Clojure 中没有内置方法可以做到这一点”也是一个有效的答案
是的,不幸的是这就是答案。我想说你能做的最好的就是定义一个map-entry
自己发挥作用:
(defn map-entry [k v]
(clojure.lang.MapEntry/create k v))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)