2016-04-11 12 views
-2

In Java sind Stringobjekte unveränderbar. Einige Methoden scheinen das Zeichenfolgenobjekt zu ändern, aber tatsächlich erstellt es ein neues Zeichenfolgenobjekt aus dem ursprünglichen Zeichenfolgenobjekt zusammen mit den Änderungen. Ich habe mich nur gefragt, ob dies für String-Objekte in SWIFT der Fall ist?in swift, ist ein String-Objekt unveränderlich einmal erstellt?

Antwort

2

Ja, in der Tat ist es. Ein String ist eine Struktur und eine Struktur ist ein Werttyp.

Aus diesem Grund können Sie einen String (oder einen anderen Werttyp), für den Sie eine Referenz let haben, nicht "mutieren". Das liegt daran, dass Sie das neue Objekt nicht auf die Referenz let schreiben können.

Sie können dies leicht selbst beweisen, indem Sie mit einem var Verweis auf einen String (oder einen anderen Werttyp) beginnen, an den Sie einen Setter-Beobachter angefügt haben. Sie werden sehen, dass Sie "mutieren" einstellen.

+0

matt, vielen Dank für Ihre Hilfe! Könntest du bitte etwas mehr auf die Antwort eingehen? vielleicht erklären Sie es in ein bisschen mehr Details? Danke nochmal für deine Hilfe! – Thor

+0

Was ist zu erklären? Du hast eine Ja-Nein-Frage gestellt. Nun ja. – matt

+1

Diese Antwort ist zwar korrekt, liest sich jedoch unvollständig, wenn sie neben den Antworten in der als Duplikat markierten Frage gestapelt ist. Die Antworten dort tun mehr, um die Details zu geben, nach denen Tony fragt. – nhgrif

Verwandte Themen