Menu
Coddy logo textTech

Null-bewusster Zugriff

Teil des Abschnitts Grundlagen der Dart-Journey von Coddy — Lektion 29 von 94.

Der null-sichere Zugriffsoperator (?.) greift sicher auf Eigenschaften potenziell nuller Objekte zu und verhindert Laufzeitfehler.

void main() {
  String? name = 'Dart';
  int? length = name?.length;
  
  print('Name: $name');
  print('Length: $length');
}

Bei Null-Werten gibt es null zurück, anstatt abzustürzen:

void main() {
  String? name = null;
  int? length = name?.length;
  
  print('Name: $name');
  print('Length: $length');
}
challenge icon

Aufgabe

Einfach

Erstellen Sie ein Dart-Programm, das den null-bewussten Zugriffsoperator (?.) mit einer Spielfigur demonstriert:

  1. Erstellen Sie eine nullable String-Variable namens playerName und setzen Sie sie auf null
  2. Erstellen Sie eine nullable int-Variable namens playerScore und setzen Sie sie auf 100
  3. Verwenden Sie den null-bewussten Zugriffsoperator (?.), um die Länge von playerName zu erhalten und speichern Sie sie in einer Variable namens nameLength
  4. Geben Sie die folgende Nachricht aus: Player name length: X (wobei X der Wert von nameLength ist)
  5. Aktualisieren Sie playerName auf "Champion"
  6. Verwenden Sie den null-bewussten Zugriffsoperator erneut, um die aktualisierte Länge zu erhalten und speichern Sie sie in nameLength
  7. Geben Sie die aktualisierte Nachricht aus: Player name length: X (wobei X der neue Wert ist)
  8. Geben Sie die Punktzahl des Spielers mit diesem Format aus: Player score: 100

Spickzettel

Der null-bewusste Zugriffsoperator (?.) greift sicher auf Eigenschaften potenziell nuller Objekte zu und verhindert Laufzeitfehler.

Wenn das Objekt nicht null ist, gibt es den Eigenschaftswert zurück:

String? name = 'Dart';
int? length = name?.length; // Returns 4

Wenn das Objekt null ist, gibt es null zurück, anstatt abzustürzen:

String? name = null;
int? length = name?.length; // Returns null

Probier es selbst

void main() {
  // Deklariere deine nullbaren Variablen hier
  String? playerName = _;
  int? playerScore = _;
  
  // Hole die Länge von playerName mit dem ?. Operator
  int? nameLength = playerName_.length;
  
  // Drucke die anfängliche Namenslänge
  print("Player name length: ${nameLength}");
  
  // Aktualisiere den playerName
  playerName = _;
  
  // Hole die aktualisierte Länge mit dem ?. Operator
  nameLength = playerName_.length;
  
  // Drucke die aktualisierte Namenslänge
  print("Player name length: ${nameLength}");
  
  // Drucke die Punktzahl des Spielers
  print("Player score: ${playerScore}");
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen