Assert

Assert[test]
代表 testTrue 的断言. 如果启用断言,则 test 在遇到断言时被计算. If testTrue,则生成一个断言失败.

Assert[test, tag]
指定将用于标识断言失败的标签.

更多信息更多信息

  • 断言通常会放置在代码中以描述和检查由程序员所作出的假设.
  • 默认情况下,断言在一个普通的 Mathematica 会话中被设为不可用,但在 Mathematica 调试程序中可用.
  • On[Assert] 使断言在一个 Mathematica 会话被启用,并在断言失败时引发一则信息.
  • Assert 出现在一个文件中时,该文件的名称和断言所处的行号在默认情况下自动用作断言标签.
  • Mathematica 调试程序中,断言失败的情况下默认生成一个断点.
  • test 的计算结果非 True 时,$AssertFunction 给出一个将用于 Assert[test, ...] 中的函数.

范例范例打开所有单元关闭所有单元

基本范例 (3)基本范例 (3)

定义一个函数,它包含一个取决于计算运行的临时结果的断言:

In[1]:=
Click for copyable input

这里不测试断言,因为断言没有被启用:

In[2]:=
Click for copyable input
Out[2]=

当断言通过 On 启用时,一则信息生成:

In[3]:=
Click for copyable input
Out[3]=
In[4]:=
Click for copyable input

如果加载的程序包包含带有断言的函数,则将记住程序包名称和行号:

In[2]:=
Click for copyable input

此处表明行信息和程序包名称如何存储于 Assert 表达式中

现在,如果断言被触发,该信息将告诉您断言所在的程序包名称和行号:

In[4]:=
Click for copyable input
Out[4]=

使断言不可用:

In[5]:=
Click for copyable input

通过指定 $AssertFunction,您可以改变断言失败时的行为. 这个函数在断言失败时抛出一个异常情况:

In[1]:=
Click for copyable input
In[2]:=
Click for copyable input

此处捕捉到了断言函数所抛的异常情况:

In[3]:=
Click for copyable input
Out[3]=
In[4]:=
Click for copyable input
版本 8 的新功能
New to Mathematica? Find your learning path »
Have a question? Ask support »