שדות שיכולים להיות ריקים
חלק מהיחידה רשימות ומסכים במסלול ה-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')אתגר
קל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});
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה רשימות ומסכים
4המחלקות שלכם
מחלקה לנתונים שלכםפרמטרים בעלי שם ונדרשיםשדות שיכולים להיות ריקיםיצירת Widgets מנתונים באמצעות mapסינון רשימה באמצעות whereחיפוש ב־Map6כרטיסיות, מגירות והחלקות
כרטיסיות עם סרגל ניווטאייקונים מלאים לכרטיסייה הפתוחהמגירה צדדיתהחלקה למחיקהביטול החלקהתרגלו בעצמכם: קומפיילר Flutter אונליין