3
我有一個Clojure函數,參數爲:[{:keys [from to]}]
。 from
和to
鍵都是可選的。我想將這些密鑰重新映射到新密鑰中,但保留這些值。什麼是有效/慣用的方式去做這件事?這是我的解決方案。如何處理函數參數中可選鍵的重新映射
(defn query
[{:keys [from to]}]
(let [re-map {:$gte from
:$lt to}]
(into {} (remove #(nil? (val %)) re-map))))
我需要它返回一個或兩個,如果其中一個鍵沒有輸入,則不爲零。所以
=>(query {:from 10})
{:$gte 10}
和
=>(query {:from 10 :to 20})
{:$gte 10 :lt 20}
我編輯我的問題澄清,回報不應該爲零。謝謝! –
對於你想要完成的事情,真的很難理解。 你說:「我需要它返回一個或兩個,如果其中一個鍵沒有輸入,則不爲零」,但這正是簡單的「(defn fun [point] point)」所做的。例如。 「(fun {:x 10:y 20})=> {:x 10 y:20}」,(fun {:x 10})=> {:x 10}「。 – dnaumenko
選擇在運行時 –