考虑一个拥有以下签名的函数:
(defn make-widget [& {:keys [x y] :or {x 10 y 20}}]
...)
如何最好地将map传递给函数,例如:
(make-widget {:x 100})
或者(make-widget {:y 200 :x 0})
我目前想到的方法是通过vec
、flatten
和apply
实现,例如:
(apply make-widget (flatten (vec ({:x 100}))
我坚信有更好的方法来做这件事。你能否考虑一下呢?