Menu
CoddyTech

Champs pouvant être vides

Fait partie de la section Listes et écrans du Journey Flutter de Coddy. Leçon 14 sur 33.

Tous les contacts n’ont pas d’adresse e-mail. Un champ qui peut ne rien contenir a un ? après son type, et sa valeur est null lorsqu’aucune valeur n’a été fournie :

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

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

Sans required, email: peut être omis : Contact(name: 'Alan Turing') a une valeur email de null.

Vous ne pouvez pas appeler de méthode sur null, donc Dart vous empêche d’écrire contact.email.toLowerCase(). Écrivez ?. à la place du point : contact.email?.toLowerCase() appelle la méthode lorsqu’il y a une adresse e-mail, et renvoie null dans le cas contraire. Ensuite, ?? choisit une valeur de remplacement :

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

Défi

Facile

Les adresses e-mail ont été saisies avec des majuscules aléatoires, et Alan n’en a pas. Donne à chaque vignette un subtitle: qui affiche l’adresse e-mail en minuscules, ou No email lorsqu’il n’y en a pas.

Essayez vous-même

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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Listes et écrans

Entraînez-vous par vous-même : Compilateur Flutter en ligne