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