鉴于地图:
(def myMap {"a" 1 "b" 2 "c" 3 "d" 4 "e" 5 "f" 6})
我希望使用let
将每个键绑定到每个值。最简洁的方法是什么?
答案 0 :(得分:10)
声明myMap
,字符串键的解构似乎是最好的选择:
(let [{:strs [a b c d e f]} myMap]
(println a b c d e f))
;=> 1 2 3 4 5 6
答案 1 :(得分:2)
您可以使用desctructuring:
我建议首先使用自定义函数将所有键转换为关键字:
(defn keywordize [map]
(into {}
(for [[k v] map]
[(keyword k) v])))
然后使用解构:
(let [{:keys [a b c d e f]} (keywordize myMap)]
(println a b c d e f))