clojure - 在 Clojure 中创建映射条目

标签 clojure

创建单个 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
  • 我检查了源代码,我知道 MapEntryPersistentVector延长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/

相关文章:

java - 本地存储的数据库

haskell - clojure 解构与类似 haskell 的参数模式匹配

clojure - 多行协议(protocol)方法文档字符串应该如何格式化?

windows - 在 emacs 中重新加载 Clojure 文件

function - 如何作为 Clojure 中函数的结果返回取消引用的值

clojure - 为什么在使用 in-ns 移动到新命名空间时会丢失所有符号?

java - 将 clojure 作为 JAVA 文件运行

function - Clojure中的除数函数

syntax - Clojure - 引用和语法引用之间的区别

emacs - 连接到 swank-server 时出现异常