评论者: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]}}(没有第二个元素)的向量也可以正常工作。
由于规范处于公开测试阶段(alpha),修改 API 还不算晚。
相关:CLJ-2115