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 送给学长毕业祝福语简短