【发布时间】:2017-06-18 05:59:35
【问题描述】:
我是clojure的新手,所以请多多包涵。
这样写一个宏:
`(let [query# (:query-params ~'+compojure-api-request+)
options# (select-keys query# [:sort-by :from :to])])
let 块的第一行从 http request 解构了 query-params - 它产生了这个结构:
{sort-by billing-account/name, from 0, to 10, payment-due , payment-method , search }
问题在于第二行 - 当我使用 select-keys 时它返回一个空地图,但是当我说例如 (first query#) 时 - 输出如下所示:[sort-by billing-account/name]
谁能解释一下为什么select-keys 不起作用?
附:试过(get query# :from) & (:from query#) - 也没有运气。
UPD
键是字符串,而不是关键字 - 因此使用字符串作为键就可以了。
【问题讨论】:
-
您确定地图中的键是关键字而不是符号或字符串吗?
-
@Lee 刚刚编辑了我的问题,是的,它们是符号。
标签: clojure macros destruction