現代の多くの言語const
では、インターフェイスと意図を明確にし、コンパイラーに最適化の機会を提供するために、正確性を使用する必要があります。D には、真に不変なデータという優れた機能があります。どのように使用する必要がconst
ありimmutable
ますか?const
関数の引数とローカル変数の修飾子として好むことimmutable
は、コードを記述する良い方法のようですが、データメンバーのような参照またはポインター (プライベートかどうかに関係なく) を構造体に割り当てたいとすぐに、不変変数を使用することはできません。
struct S {
private int[] data;
}
void main() {
immutable s = new S; // won't work, since members aren't immutable
}
したがって、struct
不変を使用すると、 a の実装を変更するとコードが壊れる可能性があります。ローカル変数を優先const
し、必要な場合にのみ不変を使用する必要がありますか? ガイドラインは何ですか?