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