2017-06-24 4 views
2

不変クラスへの参照を作成するにはどうすればよいですか?stringのような参照を並べ替えることはできますか?不変クラスへの再割り当て可能な参照を作成するには?

import std.stdio; 

immutable class Test { 
    string test(){ 
     return "test"; 
    } 
} 

void main(){ 
    auto test = new Test; 
    writeln(test.test); 
} 

作成したインスタンスは不変ではないので、これは、エラーの原因:結果の変数は、その後、新しいものを割り当てることができないので、

test.d(14): Error: immutable method test.Test.test is not callable using a mutable object 

new immutableは、いずれかの動作しません。

immutable(Test)*しかし、ポインタを避ける方法はありますか?

答えて

0

あなたはタイプを推測するautoのと同じようにimmutableを使用することができます。

immutable test  = new Test; 
immutable other_test = test; 
+0

番号: '魔法のテスト=新しい不変テスト; test.test;テスト=新しい不変テスト; ' – weltensturm

+0

Hm。私はこれが可能だとは思わない。不変の点は、変数が実行時に決して変更されないことを保証することです。 多分あなたの意図を説明すれば、あなたの問題を解決することができます:) あなたは "like string"と言っています:文字列は不変(char)[]のエイリアスです。 chars自体は不変ですが、文字列配列は変わりません。 – Patric

関連する問題