「D言語/関数」の版間の差分

削除された内容 追加された内容
Angol Mois (トーク | 投稿記録)
Angol Mois (トーク | 投稿記録)
→‎契約プログラミング: コンパイル時の記述を削る。unittestと混同している?
140 行
関数を定義する際、入力値の要求事項と、出力値の要求事項とを記述する事ができる。また、自身が記述したアルゴリズムがバグがなく動作した場合に成り立つべき事項を確かめることができる。この仕組みを「契約」と言う。
 
D言語の契約プログラミングでは、要求事項を見たさない入力または出力がされた際、プログラムの実行を停止する。また、静的な契約 (static assert) も存在し、こちらはコンパイル時間数実行が可能な範囲においてコンパイル時にチェックされ、条件が満たされない場合はコンパイルがエラーとなる。
 
;コード例
241 行
 
もちろん、プラスの「5」など契約に適合した数値を入れているかぎりは、動作する。
 
 
このように、契約プログラミングは、けっしてコンパイルだけを契約違反で停止するのではなく、コンパイル以降も監視しており、実行中でも契約違反があればコードの実行を停止する。
 
=== 契約の使い方に関する注意 ===