2017-07-17 12 views
6

什麼是內置 Clojure的方式(如果有),創建一個單一的地圖條目?在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中沒有內建的方法」也是一個有效的答案(我強烈懷疑是這種情況,只是想確保我沒有意外地錯過某些東西)。

回答

7

「沒有,存在的方式來做到這一點Clojure中沒有內置」也是一個有效的答案

呀,可惜這就是答案。我說你能做的最好是自行定義map-entry功能:

(defn map-entry [k v] 
    (clojure.lang.MapEntry/create k v)) 
3

只要指定的類名如下

(clojure.lang.MapEntry. "key" "val") 
相關問題