provide default value in clojure.spec
是否可以为
类似的东西:
1 | (s/keys :opt [(with-default ::k1"default1") (with-default ::k2"default2")]) |
或者在clojure.spec之外处理默认值更习惯吗?
我不这么认为,因为
1 | (merge {::k1"default" ::k2"default"} {::k1 2}) ;;=> {::k1 2, ::k2"default"} |
或使用关联解构:
1 2 3 | (let [{k1 ::k1 k2 ::k2 :or {k1"default", k2"default"}} {::k1 2}] [k1 k2]) ;; => [2"default"] |
或类似地:
1 2 3 | (let [{:keys [::k1 ::k2] :or {k1"default" k2"default"}} {::k1 2}] [k1 k2]) ;; => [2"default"] |
规范中没有明确的功能,我希望您在代码中而不是规范中处理它。
可以使用