引入 core.spec 后 :pre & :post defn 条件是否过时了?

Did :pre & :post defn conditions become obsolete after core.spec was introduced?

我是 Clojure 的新手,乍一看,core.spec 做了 :pre & :post defn 条件用于 PLUS 的所有事情。

我知道 core.spec 引入的时间很晚(并且仍处于 alpha/beta 阶段)并且 :pre & :post defn 条件存在的时间更长 - 也许这就是原因pre/post 仍不被视为过时的方法?

是否有 :pre/:post 提供的东西是我无法从 core.spec 获得的?

谢谢

许多人更喜欢 Plumatic Schema 而不是 Clojure Spec(两者各有长处)。 clojure.test.check也很厉害

这里的要点是以上所有只适用(通常)当运行单元测试时。 :pre:post 检查在函数执行时应用 always

我喜欢的另一个工具是 tupelo.core/validate 上的 Plumatic Schema function validate. You can find a similar (but better) function

如官方文档所述,您可以同时使用两者: https://clojure.org/guides/spec#_using_spec_for_validation