Kann ich die assoziierten Werte einer Aufzählung ändern?

8

Ich lese das Swift-Tour-Dokument und stehe vor einem Problem. Hier ist der Code:

%Vor%

Die Funktion adjust() funktioniert nicht, ich frage mich, ob es eine Möglichkeit gibt, den zugeordneten Wert einer Enumeration zu ändern, und wie?

    
wj2061 18.07.2015, 06:44
quelle

1 Antwort

19

Ihr unmittelbarstes Problem ist, dass Sie versuchen, den Wert einer unveränderlichen Variablen zu ändern (mit let deklariert), wenn Sie es mit var deklarieren sollten. Dies wird jedoch dieses spezielle Problem nicht lösen, da Ihre name Variable eine Kopie des zugehörigen Wertes enthält, aber im Allgemeinen ist dies etwas, was Sie beachten sollten.

Wenn Sie dies lösen wollen, müssen Sie die Funktion adjust() als Mutationsfunktion deklarieren und sich selbst von Fall zu Fall neu zuweisen, um ein neuer Enum-Wert mit einem assoziierten Wert zu sein, der sich aus dem alten und dem neuen zusammensetzt ein. Zum Beispiel:

%Vor%     
Mick MacCallum 18.07.2015, 06:57
quelle

Tags und Links