Menu
CoddyTech

שדות שיכולים להיות ריקים

חלק מהיחידה רשימות ומסכים במסלול ה-Flutter של Coddy. שיעור 14 מתוך 33.

לא לכל איש קשר יש כתובת דוא"ל. לשדה שעשוי להיות ריק יש ? אחרי הטיפוס שלו, והערך שלו הוא null כשלא ניתן לו ערך:

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

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

בלי required, אפשר להשמיט את email:: ל-Contact(name: 'Alan Turing') יש ערך null עבור email.

אי אפשר לקרוא למתודה על null, לכן Dart מונעת ממך לכתוב contact.email.toLowerCase(). כתוב ?. במקום הנקודה: contact.email?.toLowerCase() קוראת למתודה כשיש כתובת דוא"ל, ומחזירה null כשאין. ואז ?? בוחר ערך חלופי:

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

אתגר

קל
subtitle: שמציג את כתובת האימייל באותיות קטנות, או את No email כשאין כתובת כזאת.

נסו בעצמכם

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 iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה רשימות ומסכים

תרגלו בעצמכם: קומפיילר Flutter אונליין