【发布时间】:2015-05-22 15:08:36
【问题描述】:
具有 Python 和 C# 背景的新 Clojure 开发人员。我有类似的东西:
(def coll #{
:key1 ["string1"]
:key2 ["string2"]})
我需要定义一个新字符串来连接两个键向量的值。我试过了
(clojure.string/join (get coll :key1 :key2))
(concat (get coll :key1 :key2))
虽然这些提取了第一个键的字符串值,但我无法获得第二个。
从一个集合中获取和连接两个值的惯用 Clojure 方法是什么?我想要的输出是:
"string1string2"
【问题讨论】:
-
您的收藏是一个集合,而不是地图,请删除
#符号,因为当前 coll 中有 4 个项目,而不是 2 个地图条目 -
你为什么使用集合而不是地图?如果您有地图,您可以使用
((juxt :key1 :key2) col)按顺序获取两个值。 -
试试
select-keys->vals->(apply str ...)HTH -
感谢马克和李。通过放下锐利然后使用 (juxt) 切换到地图得到了想要的结果。