欢迎!请参阅关于页面以了解更多关于此工作的信息。
这似乎不是一个很大的快捷方式,并且它切断了我添加消息到断言的有用功能。
如果你更喜欢assert及其消息,那么这似乎从未发生过。
Michael Fogus(《Clojure的乐趣》作者)
:pre 和 :post 优于 assert 的一个优势是,前者允许“断言”可能来自不同于函数主体的不同源。[...]:pre 和 :post 还使进行一些复杂的自动测试生成变得相对容易,并且作为额外的福利,为函数提供文档形式。Chris Houser 添加了一个我之前不知道的有趣的观点,“在使用 assert 代替 :pre 时通常相当直接,如果必须这么做。在使用 assert 代替 :post 时则很痛苦。”听起来合情合理。在此基础上,Chas Emerick 对:pre 和 :post 的评估,认为它们涵盖了 99.5% 的 assert 应用,并提供简单统一的钩子。
来源:fogus: Clojure的 :pre 和 :post,评论编号 14。
还应考虑函数规范: https://clojure.org/guides/spec#_specing_functions