gpt4 book ai didi

map - 如何处理函数参数中可选键的重新映射

转载 作者:行者123 更新时间:2023-12-04 20:29:43 26 4
gpt4 key购买 nike

我有一个带有参数的 Clojure 函数:[{:keys [from to]}]fromto 键都是可选的。我想将这些键重新映射为新键但保留值。解决这个问题的有效/惯用方法是什么?这是我目前的解决方案。

(defn query
[{:keys [from to]}]
(let [re-map {:$gte from
:$lt to}]
(into {} (remove #(nil? (val %)) re-map))))

我需要它返回其中一个或两个,如果未输入其中一个 key ,则不返回 nil。所以

=>(query {:from 10}) 
{:$gte 10}

=>(query {:from 10 :to 20})
{:$gte 10 :lt 20}

最佳答案

clojure.set 中有一个函数名为 rename-keys 的命名空间:

user=> (use 'clojure.set)
nil
user=> (rename-keys {:from 10} {:from :$gte :to :$lt})
{:$gte 10}

关于map - 如何处理函数参数中可选键的重新映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7350278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com