2013-08-29 38 views
5

構建地圖我有一個看起來像這樣的載體:從矢量Clojure中

["Config" "{}" "Auth" "{}" "Other" "{}"] 

我想借此每個鍵值對,並把它分爲以下地圖:

{"Config" "{}", "Auth" "{}", "Other" "{}"} 

我如何用Clojure做到這一點?有沒有內置的函數可以做到這一點?

+0

剛剛得到了答案'(apply assoc {} [「Config」「{}」「Auth」「{}」「Other」「{}」])''。有沒有更好的? –

回答

6

使用apply所需類型的地圖構造函數應用到向量,即:

(apply hash-map ["Config" "{}" "Auth" "{}" "Other" "{}"]) 

編輯

根據this answer你可以根據你評估{}的方式不同的地圖類型,所以使用適合您需求的地圖構造函數。

編輯

看着this通過文字{}返回不同的對象類型似乎是一個錯誤。

+0

謝謝,幹得好!如果讓問題持續一段時間,我不太願意接受答案,以免有人錯過某些東西。 –

+1

「如果你想模擬」{}「確實做了什麼,可以使用'array-map'而不是'hash-map'。」正如當前實現的那樣,具有常量鍵和值的文字圖譜表達式也將被解析爲哈希映射(儘管被混淆地評估爲數組映射)。請注意,文字「{:a 1,:b 2,:c 3}」的鍵順序不受尊重(版本1.5中)。 –

+0

@ A.Webb我被'(type x)'結果提示。爲什麼它會給出不同的價值呢?由於那個令人困惑的評估? – soulcheck