clojure.spec /和&clojure.spec /或
示例
clojure.spec/and&clojure.spec/or可用于使用多个规范或谓词来创建更复杂的规范:
(clojure.spec/def ::pos-odd (clojure.spec/and odd? pos?)) (clojure.spec/valid? ::pos-odd 1) ;;=> true (clojure.spec/valid? ::pos-odd -3) ;;=> false
or工作原理相似,但有很大的不同。定义or规范时,必须使用关键字标记每个可能的分支。这是为了提供在错误消息中失败的特定分支:
(clojure.spec/def ::big-or-small (clojure.spec/or :small #(< % 10) :big #(> % 100))) (clojure.spec/valid? ::big-or-small 1) ;;=> true (clojure.spec/valid? ::big-or-small 150) ;;=> true (clojure.spec/valid? ::big-or-small 20) ;;=> false
使用符合规格时or,将返回适用的规格,该规格使值符合:
(clojure.spec/conform ::big-or-small 5) ;; => [:small 5]
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短