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