Final-Felder und tiefe Unveränderlichkeit
Erstellen Sie Objekte, die sich niemals ändern
Final-Felder und tiefe Unveränderlichkeit ist eine kostenlose Dart 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 Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Unveränderlich per Design
Ein unveränderliches Objekt ändert sich nicht mehr, nachdem es erstellt wurde. Dadurch bleiben Ihre Daten vorhersehbar und können sicher in der gesamten App gemeinsam verwendet werden. 🔒
final kennenlernen
Ein final-Feld wird bei der Erstellung einmalig gesetzt und kann anschließend nie neu zugewiesen werden. Der Wert bleibt für die gesamte Lebensdauer des Objekts unverändert.
class Point {
final int x;
Point(this.x);
}Neuzuweisung ist ein Fehler
Versuchen Sie, einem final-Feld einen neuen Wert zuzuweisen, hält der Compiler Sie davon ab. Der Fehler wird erkannt, bevor Ihr Programm überhaupt ausgeführt wird.
final p = Point(3);
p.x = 9; // compile errorfinal und const im Vergleich
Verwenden Sie const, wenn der Wert zur Compile-Zeit bekannt ist, und final, wenn er zur Laufzeit berechnet wird. Beide verhindern eine spätere Neuzuweisung.
const pi = 3.14;
final now = DateTime.now();const-Konstruktoren
Geben Sie einer Klasse einen const constructor, kann Dart wirklich unveränderliche Instanzen erstellen. Alle ihre Felder müssen selbst final sein.
class Color {
final int rgb;
const Color(this.rgb);
}Gemeinsam verwendete const-Instanzen
Zwei identische const-Objekte sind im Speicher ein und dieselbe Instanz. Dart verwendet sie wieder, wodurch sowohl Speicherplatz als auch Zeit gespart werden.
const a = Color(0);
const b = Color(0);
print(identical(a, b)); // trueFlach und tief
Ein final-Feld verhindert eine Neuzuweisung, friert aber nicht das ein, worauf es verweist. Einer finalen List können weiterhin Elemente hinzugefügt werden.
final nums = [1, 2];
nums.add(3); // allowed!Das Ziel tiefer Unveränderlichkeit
Tiefe Unveränderlichkeit bedeutet, dass sich auch nichts ändern kann, was vom Objekt aus erreichbar ist. Dafür benötigen Sie mehr als nur final.
Collections einfrieren
Verpacken Sie eine Liste in List.unmodifiable, sodass jeder Versuch, Elemente hinzuzufügen oder zu entfernen, eine Ausnahme auslöst. Damit bleibt die gesamte Struktur unveränderlich.
final tags = List.unmodifiable([1, 2]);
tags.add(3); // throws at runtimeconst-Collection-Literale
Setzen Sie const vor ein Literal, um eine tief unveränderliche Collection zur Compile-Zeit zu erhalten. Sie kann überhaupt nicht verändert werden.
const days = ['Mon', 'Tue'];
// days.add(...) is forbiddenWarum das wichtig ist
Unveränderliche Daten sind threadsicher, lassen sich einfach zwischenspeichern und eignen sich gut für state management in Flutter. Fehler durch unerwartete Änderungen verschwinden damit einfach.
Kurzer Check
Ein letzter Check zu final und Unveränderlichkeit.
Zusammenfassung
Sie haben gelernt, dass final ein Feld sperrt, const Werte zur Compile-Zeit festlegt und tiefe Unveränderlichkeit unveränderliche oder const-Collections erfordert. 🎉
Häufig gestellte Fragen
Ist die Lektion „Final-Felder und tiefe Unveränderlichkeit“ kostenlos?
Ja — der vollständige Text von „Final-Felder und tiefe 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 Dart Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Final-Felder und tiefe Unveränderlichkeit“?
Erstellen Sie Objekte, die sich niemals ändern Du übst Dart 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 Dart Academy zu starten?
Keine Vorkenntnisse erforderlich. Dart 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 „Final-Felder und tiefe 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 Dart Academy-Lektion Code schreiben und ausführen?
Ja. Jede Dart 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
- Final-Felder und tiefe Unveränderlichkeit
- sealed-Klassen und vollständige switch-Anweisungen
- base-, interface- und final-Modifikatoren
- copyWith und Wertgleichheit