Assert

Assert[test]
testTrueであるというアサーションを表す.アサーションが有効になると,アサーションがあるたびに test が評価される.testTrueでなければ,アサーションの失敗が生成される.

Assert[test, tag]
アサーションが失敗した場合にそれを指し示すタグを指定する.

詳細詳細

  • アサーションはしばしばコードに置かれ,プログラマーの想定を表しチェックする.
  • デフォルトで,通常の Mathematica セッションではアサーションは無効になっているが Mathematica デバッガでは有効になっている.
  • On[Assert]とすると Mathematica セッションでのアサーションが有効になり,アサーションが失敗するたびにメッセージが表示されるようになる.
  • Assertがファイルに含まれていると,そのファイル名とアサーションがある行番号がアサーションのタグとして自動的に使われる.
  • Mathematica デバッガでは,アサーションが失敗するとデフォルトでブレークポイントが作られる.
  • $AssertFunctiontest を評価してもTrueにならない場合に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 »