不変量とは何ですか? 質問する

不変量とは何ですか? 質問する

この単語は、さまざまな文脈で使用されているようです。私が推測するに、変更できない変数を意味しているようです。定数/final (Java なんてこった!) はそのためにあるのではないですか?

ベストアンサー1

不変式は変数よりも「概念的」です。一般的に、不変式は常に真であるプログラム状態の特性です。不変式が保持されることを保証する関数またはメソッドは、不変式を維持すると言われます。

たとえば、バイナリ検索ツリーには、すべてのノードについて、ノードの左の子のキーがノード自身のキーよりも小さいという不変条件があります。このツリーに対して正しく記述された挿入関数は、その不変条件を維持します。

ご存知のとおり、これは変数に格納できるようなものではありません。むしろステートメントです。についてプログラム。プログラムが維持すべき不変条件の種類を把握し、コードをレビューして実際にそれらの不変条件が維持されていることを確認することで、コード内の論理エラーを回避できます。

おすすめ記事