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