我想为具有特定键存在规则的映射创建一个 clojure 规范。
地图必须有一个:type
并且可以有一个:default
或:value
但不能同时有。我试过了:
(s/def ::propertyDef
(s/keys :req [::type (s/or ::default ::value) ] :opt [::description ::required]))
但我得到了
CompilerException java.lang.AssertionError: Assert failed:
spec/or expects k1 p1 k2 p2..., where ks are keywords
(c/and (even? (count key-pred-forms)) (every? keyword? keys)),
compiling:(C:\Users\MartinRoberts\AppData\Local\Temp\form-init4830956164341520551.clj:1:22)
但是or
给了我一个错误,因为它的格式错误。我不得不承认对s/or
.