欢迎!有关本网站的更多信息,请参阅关于页面。
这似乎不是一个很大的快捷方式,而且它会阻止我添加消息到断言等有用的功能。
如果您更喜欢assert及其消息,那么似乎永远不会。
Michael Fogus(《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