Menu
CoddyTech

Campi che possono essere vuoti

Fa parte della sezione Elenchi e schermate del percorso Flutter di Coddy. Lezione 14 di 33.

Non tutti i contatti hanno un indirizzo email. Un campo che può non contenere nulla ha un ? dopo il tipo e il suo valore è null quando non è stato fornito nulla:

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

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

Senza required, si può omettere email:: Contact(name: 'Alan Turing') ha email uguale a null.

Non puoi chiamare un metodo su null, quindi Dart ti impedisce di scrivere contact.email.toLowerCase(). Scrivi ?. al posto del punto: contact.email?.toLowerCase() chiama il metodo quando è presente un indirizzo email e restituisce null quando non c'è. Poi ?? sceglie un valore alternativo:

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

Sfida

Facile

Le email sono state digitate con lettere maiuscole casuali e Alan non ne ha una. Assegna a ogni riquadro un subtitle: che mostri l'email in lettere minuscole, oppure No email se non ne ha una.

Provalo tu

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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Elenchi e schermate

Esercitati da solo: Compilatore Flutter online