Wie erstelle ich einen Verweis auf unveränderliche Klassen, aber während die Fähigkeit, den Verweis neu zuweisen, wie string
?Wie erstellt man einen neu zuweisbaren Verweis auf eine unveränderbare Klasse?
import std.stdio;
immutable class Test {
string test(){
return "test";
}
}
void main(){
auto test = new Test;
writeln(test.test);
}
Dies verursacht einen Fehler, weil die erzeugte Instanz nicht unveränderlich ist:
test.d(14): Error: immutable method test.Test.test is not callable using a mutable object
new immutable
funktioniert auch nicht, da die resultierende Variable kann keine neuen danach zugeordnet werden.
immutable(Test)*
würde funktionieren, aber gibt es eine Möglichkeit, Zeiger zu vermeiden?
Nein, was ich brauche: 'Magie Test = new unveränderlich Prüfung; Test Test; test = neuer unveränderlicher Test; ' – weltensturm
Hm. Ich glaube nicht, dass das möglich ist. Weil der Punkt von unveränderlich ist, um zu garantieren, dass sich Variable während der Laufzeit niemals ändert. Vielleicht, wenn Sie Ihre Absichten erklären, können wir Ihr Problem lösen :) Sie sagten "wie Zeichenfolge": Zeichenfolgen sind ein Alias von unveränderlich (char) []. Die Zeichen selbst sind unveränderlich, das String-Array jedoch nicht. – Patric