我已将规格定义为 -
const D
它正常工作volatile D
但现在我还必须检查const volatile D
是否应该小于(s/def ::start integer?)
(s/def ::end integer?)
(s/def ::collection (s/keys :req-un [::start ::end]))
。怎么做?有没有更简单的方法来创建另一个fn并检查?
答案 0 :(得分:1)
Spec的s/def
定义只是谓词。您可以在s/and
规范的正文中使用::collection
,其中第一个条件是您当前的条件,第二个条件是订单谓词:
(s/def ::ordered-collection (fn [{:keys [start end]}] (< start end)))
(s/def ::collection (s/and (s/keys :req-un [::start ::end])
::ordered-collection))