欢迎!请访问关于页面以获取更多关于该功能的信息。
这看起来不是什么快捷方式,而且它让我失去了添加错误消息等有用功能的特性。
如果你更喜欢 assert 和它的消息,那么似乎永远不会。
Michael Fogus(《Clojure 欢乐编程》的作者)
:pre和:post相比于assert的优点之一是,前者允许“断言”可能来自不同于函数体不同的来源。[...] :pre和:post也使得进行一些复杂的自动测试生成相对容易,并且作为一个额外的优势,为函数提供一种文档形式。Chris Houser提出了一个我之前不知道的有趣的观点,“如果你必须这样做,使用assert代替:pre通常很简单。使用:post代替assert很麻烦。”听起来很有道理。在此基础上,Chas Emerick评估说:pre和:post涵盖了99.5%的assert使用,同时提供了简单、一致的钩子。
来源: fogus: Clojure的:pre和:post,评论编号14。
还应考虑函数规范:[功能规范](https://clojure.org/guides/spec#_specing_functions)