Menu
CoddyTech

Felder, die leer sein können

Teil des Abschnitts Listen und Bildschirme der Flutter-Journey von Coddy. Lektion 14 von 33.

Nicht jeder Kontakt hat eine E-Mail-Adresse. Ein Feld, das leer sein kann, hat nach seinem Typ ein ?, und sein Wert ist null, wenn nichts angegeben wurde:

class Contact {
  final String name;
  final String? email;

  Contact({required this.name, this.email});
}

Ohne required kann email: weggelassen werden: Contact(name: 'Alan Turing') hat für email den Wert null.

Du kannst keine Methode auf null aufrufen, daher verhindert Dart, dass du contact.email.toLowerCase() schreibst. Schreibe stattdessen ?. anstelle des Punkts: contact.email?.toLowerCase() ruft die Methode auf, wenn eine E-Mail-Adresse vorhanden ist, und ergibt null, wenn keine vorhanden ist. Dann wählt ?? einen Ersatzwert aus:

Text(contact.email?.toLowerCase() ?? 'No email')
challenge icon

Aufgabe

Einfach

E-Mail-Adressen wurden mit zufälligen Großbuchstaben eingegeben, und Alan hat keine. Gib jeder Kachel ein subtitle:, das die E-Mail-Adresse in Kleinbuchstaben anzeigt, oder No email, wenn keine vorhanden ist.

Probier es selbst

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    final List<Contact> contacts = [
      Contact(name: 'Ada Lovelace', email: 'Ada@Example.com'),
      Contact(name: 'Alan Turing'),
      Contact(name: 'Grace Hopper', email: 'GRACE@NAVY.MIL'),
    ];
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: const Text('Contacts')),
        body: ListView(
          children: [
            for (Contact contact in contacts)
              ListTile(
                title: Text(contact.name),
              ),
          ],
        ),
      ),
    );
  }
}

class Contact {
  final String name;
  final String? email;

  Contact({required this.name, this.email});
}
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 Listen und Bildschirme

Übe selbstständig: Online-Flutter-Compiler