评论者: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