Wertetypen und Unveränderlichkeit
Erkennen Sie, wie let die Mutation von Werttypen verhindert.
Wertetypen und Unveränderlichkeit ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Structs sind Werttypen
In Swift sind struct und enum Werttypen. Wenn Sie einen solchen Wert einer neuen Variable zuweisen, wird er kopiert.
struct Point { var x: Int; var y: Int }
var a = Point(x: 1, y: 2)
var copy = a
copy.x = 99
print(a.x, copy.x)let sperrt den gesamten Wert
Wenn Sie eine Struktur mit let deklarieren, wird der gesamte Wert unveränderlich, einschließlich all seiner Eigenschaften.
struct Counter { var value: Int }
let c = Counter(value: 0)
// c.value = 5 // compile error
print(c.value)var ermöglicht Änderungen
Verwenden Sie var, wenn Sie die Eigenschaften einer Struktur nach ihrer Erstellung ändern möchten.
struct Counter { var value: Int }
var c = Counter(value: 0)
c.value = 5
print(c.value)Kopieren bei Zuweisung
Jede Variable enthält ihre eigene unabhängige Kopie. Wenn Sie eine ändern, bleibt die andere unverändert.
struct Box { var label: String }
var first = Box(label: "A")
var second = first
second.label = "B"
print(first.label, second.label)Wertsemantik in Funktionen
Wenn Sie eine Struktur an eine Funktion übergeben, wird eine Kopie übergeben. Das Original außerhalb der Funktion bleibt unverändert.
struct Score { var points: Int }
func bump(_ s: Score) {
var local = s
local.points += 10
}
var s = Score(points: 0)
bump(s)
print(s.points)Unveränderliche Eigenschaften
Eine mit let deklarierte Eigenschaft innerhalb einer Struktur kann niemals geändert werden, auch nicht bei einer var-Instanz.
struct User { let id: Int; var name: String }
var u = User(id: 1, name: "Ada")
u.name = "Bob"
// u.id = 2 // compile error
print(u.id, u.name)Arrays sind ebenfalls Werttypen
Swifts Array, Dictionary und Set sind Strukturen und werden daher bei der Zuweisung kopiert.
var a = [1, 2, 3]
var b = a
b.append(4)
print(a)
print(b)Strings sind Werttypen
String ist ebenfalls ein Werttyp. Wenn Sie eine Kopie ändern, bleibt das Original unverändert.
var s1 = "hi"
var s2 = s1
s2 += " there"
print(s1)
print(s2)Warum Werttypen hilfreich sind
Wertsemantik verhindert Fehler durch versehentlich gemeinsam genutzten Zustand. Sie können einen Wert lokal nachvollziehen, ohne sich darum sorgen zu müssen, wer sonst noch eine Referenz darauf hält.
struct Config { var retries: Int }
let defaultConfig = Config(retries: 3)
var custom = defaultConfig
custom.retries = 5
print(defaultConfig.retries, custom.retries)Unveränderlichkeit und Sicherheit
Wenn Sie Werte möglichst immer mit let markieren, wird der Code sicherer und verständlicher. Der Compiler stellt sicher, dass sie nie geändert werden.
let limit = 100
let name = "stable"
print(limit, name)Die erneute Zuweisung einer let-Variable schlägt fehl
Sie können einer let-Bindung keinen neuen Wert zuweisen und den darin enthaltenen Wert nicht verändern.
let pi = 3.14
// pi = 3.15 // compile error
print(pi)Kurztest
Testen Sie das Verhalten von Werttypen.
Zusammenfassung
Structs und Enums sind Werttypen: Sie werden bei der Zuweisung und bei der Übergabe an Funktionen kopiert. Eine let-Bindung sperrt den gesamten Wert, und eine let-Eigenschaft kann niemals geändert werden. Dadurch entsteht ein vorhersehbarer, isolierter Zustand.
struct P { var n: Int }
var a = P(n: 1)
var b = a
b.n = 9
print(a.n, b.n)Häufig gestellte Fragen
Ist die Lektion „Wertetypen und Unveränderlichkeit“ kostenlos?
Ja — der vollständige Text von „Wertetypen und Unveränderlichkeit“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Wertetypen und Unveränderlichkeit“?
Erkennen Sie, wie let die Mutation von Werttypen verhindert. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Swift Academy zu starten?
Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Wertetypen und Unveränderlichkeit“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?
Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Wertetypen und Unveränderlichkeit
- Das Schlüsselwort mutating
- Mutating und Neuzuweisung von self
- Nicht mutierende Alternativen