创建单个 map 条目的内置 Clojure 方式(如果有)是什么?
换句话说,我想要类似(map-entry key value)
的东西。换句话说,结果应该或多或少等于(first {key value})
。
备注:
- 当然,我已经尝试过谷歌搜索,只找到了 map-entry?但是,该文档没有链接资源。
- 我知道
(first {1 2})
返回[1 2]
,它看起来像是一个向量。然而:
(class (first {1 2}))
; --> clojure.lang.MapEntry
(class [1 2])
; --> clojure.lang.PersistentVector
- 我检查了源代码,我知道 MapEntry和 PersistentVector延长APersistentVector (所以
MapEntry
或多或少也是一个向量)。但是,问题仍然是,我是否可以从 Clojure 代码创建MapEntry
实例。 - 最后但并非最不重要的一点:“不,Clojure 中没有内置方法可以做到这一点”也是一个有效的答案(我强烈怀疑是这种情况,只是想确保我没有意外错过某些东西)。
最佳答案
"no, there is no built in way to do that in Clojure" is also a valid answer
是的,不幸的是这就是答案。我想说你能做的最好的事情就是自己定义一个map-entry
函数:
(defn map-entry [k v]
(clojure.lang.MapEntry/create k v))
关于clojure - 在 Clojure 中创建映射条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45151994/