什么是内置的 Clojure方法(如果有的话),以创建单个映射条目?
换句话说,我想要像(map-entry key value).换句话说,结果应该或多或少相当于(first {key value}).
备注:
(first {1 2})返回[1 2],这似乎是一个向量.然而:(class (first {1 2}))
; --> clojure.lang.MapEntry
(class [1 2])
; --> clojure.lang.PersistentVector
Run Code Online (Sandbox Code Playgroud)
MapEntry也或多或少也是一个向量).但问题是,我是否可以MapEntry从Clojure代码创建实例."不,在Clojure中没有内置的方法"也是一个有效的答案
是的,不幸的是,这就是答案.我会说你能做的最好就是map-entry自己定义一个函数:
(defn map-entry [k v]
(clojure.lang.MapEntry/create k v))
Run Code Online (Sandbox Code Playgroud)
只需指定一个类名,如下所示
(clojure.lang.MapEntry. "key" "val")
Run Code Online (Sandbox Code Playgroud)
或导入类以通过短名称实例化
(import (clojure.lang MapEntry))
(MapEntry. "key" "val")
Run Code Online (Sandbox Code Playgroud)