如果值无效,应存在在创建规格时快速失败的途径。目前,可以创建无效的规格,这些规格在调用 s/valid?
等时将晚些时候失败。
`
(s/def ::a 1)
(s/valid? ::a 1)
; 语法错误(ClassCastException)在 ... 编译时
; java.lang.Long 不能转换为 clojure.lang.IFn
(s/valid? (s/or :a 1 :b 2) 1)
; 语法错误(ClassCastException)在 ... 编译时
; java.lang.Long 不能转换为 clojure.lang.IFn
`