提供关于断言上下文额外信息的常见需求。例如,有人可能希望将局部或动态绑定值包含在断言报告中,或在不适用于测试环境的情况下,使用 clojure.spec/assert
利用具有 {{specs}} 的结构化错误。
使用 {{clojure.core/assert}},可以将在格式化的消息中插入额外的数据,但使用 {{clojure.spec/assert}} 没有这样的功能。clojure 的 {{assert}} 中的 {{message}} 参数是在 CLJ-774 中添加的,并且在那里承认了该机制不是最理想的。通过将报告作为数据传递的一个显著优点是,编辑器可以优雅地处理大量数据。
本提案与 CLJ-415 相关,但具有更广泛的范围。使用额外的映射,可以传递任何值(不仅仅是局部值),而且不会意外地使 REPL 填满大量局部值。