ClojureScript 中有一个 :elide-asserts
选项,允许在编译时指定是否启用或禁用断言。Clojure 有类似的机制,使用 *assert*
变量,但缺少在执行/评估任何其他代码之前设置它的方法。
我知道,使用 tool.deps 时,你有-e "(set! *assert* false)"
,但这仅在你使用 tool.deps 启动应用时有效(在开发中很常见,但在生产中不太常见)。
另一个先例是 clojure.spec.check-asserts
系统属性,它仅适用于 clojure.spec。
如果能有一个类似的系统属性来指定 *assert*
变量的值,那就太棒了。
请参阅 https://clojure.atlassian.net/browse/CLJ-2554