5

現代の多くの言語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し、必要な場合にのみ不変を使用する必要がありますか? ガイドラインは何ですか?

4

1 に答える 1