欢迎!有关如何使用本站的一些更多信息,请参阅关于页面。
这看起来并不像是一个快捷方式,而且它使我失去了一些有用功能,比如向断言添加消息。
如果您更喜欢使用assert及其消息,那么似乎永远不会。
Michael Fogus(《The Joy of Clojure》的作者)
:pre 和 :post 比起 assert 的一个优势是,前者允许“断言”可能来源于不同于函数主体的不同源。 [...] :pre 和 :post 还能使执行一些复杂的自动测试生成变得相对容易,并且作为附加优势为函数提供形式化文档。Chris Houser 还添加了一个我以前不知道的有趣观点:“用 assert 代替 :pre 通常相当直接,如果你必须这么做。用 assert 替代 :post 则是一个痛点。”听起来很合理。在此基础上,Chas Emerick 认为使用 :pre 和 :post 可以涵盖 assert 使用量的 99.5%,并提供简单且一致的钩子。
来源:fogus: Clojure的 :pre 和 :post,评论编号 14。
还应考虑函数规范:[点击查看](https://clojure.org/guides/spec#_specing_functions)