评论者:jcr
请使用sumtypes代替“魔术”值来表示失败或成功。例如,
(s/conform any? ::s/invalid) ;=> [:ok ::s/invalid] (s/conform int? ::s/invalid) ;=> [:failure #::s{:problems ... :spec ... :value ...}]
注意,返回值应该是clojure.lang.MapEntry的一个实例,以便可以在其上使用{{key}}和{{val}}。但是,如果您不想在失败时返回explain-map,返回{{[:ok value]}}和{{[:failure]}}(没有第二个元素)也将有效。
由于spec明确处于alpha版本,修复api还为时不晚。
相关:CLJ-2115