0Pricing
Dart Academy · Lektion

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 error

final 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)); // true

Flach 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 runtime

const-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 forbidden

Warum 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

  1. Final-Felder und tiefe Unveränderlichkeit
  2. sealed-Klassen und vollständige switch-Anweisungen
  3. base-, interface- und final-Modifikatoren
  4. copyWith und Wertgleichheit
← Zurück zu Dart Academy