julia - 如何在 Julia 中禁用 @assert

标签 julia assert

作为一个老 C 程序员,我在我的代码中使用了很多断言。现在我想全局关闭它们以加快速度。这样做的最佳实践方法是什么?

最佳答案

没有内置选项/命令行标志来禁用 @assert s 全局,但(!)。

现在,您可以定义一个 @myassert宏,取决于全局开关,是无操作或常规 @assert :

asserting() = false # when set to true, this will enable all `@myassert`s

macro mayassert(test)
  esc(:(if $(@__MODULE__).asserting()
    @assert($test)
   end))
end

f(x) = @mayassert x < 2 

(取自 https://discourse.julialang.org/t/assert-alternatives/24775/14)

关于julia - 如何在 Julia 中禁用 @assert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58305613/

相关文章:

arrays - Julia:扁平化数组/元组数组

Java断言打印

C# 单元测试 : Retrieve Data from Repository

scala - 如何检查构造函数参数并抛出异常或在 Scala 中的默认构造函数中进行断言?

templates - 不允许依赖于 Julia 中类型定义中的整数类型参数的表达式

julia - Julia 中的探索性 PCA

function - 如何从 Julia 结构的构造函数中调用函数?

julia - Julia 是否有相当于 Python 的 __del__ 的关键字

c++ - 断言与 ATLASSERT 与断言

java - 什么时候应该使用 Apache Commons 的 Validate.isTrue,什么时候应该只使用 'assert' 关键字?