סיכום – טיפול בטוח ב-null
חלק מהיחידה יסודות במסלול ה-Dart של Coddy. שיעור 82 מתוך 94.
אתגר
קלאתה בונה מערכת פרופילי משתמשים לאפליקציה לנייד. צור מחלקה UserProfile שמדגימה את ההבנה שלך בתכונות בטיחות ה-null של Dart.
ממש מחלקה UserProfile עם הפרטים הבאים:
- מאפיינים שאינם nullable (חייבים תמיד לקבל ערך):
idמסוגintcreatedDateמסוגString
- מאפיינים nullable (יכולים להיות null בעת האתחול):
nameמסוגString?emailמסוגString?ageמסוגint?
- מאפיין שמאותחל באיחור:
displayNameמסוגString, מוגדר באמצעות מילת המפתחlate
- בנאי:
- מקבל את
idואתcreatedDateכפרמטרים נדרשים - מאתחל את
displayNameלערך"Guest"
- מקבל את
מתודה:
<strong>void printProfile()</strong>מדפיסה את פרופיל המשתמש בפורמט הבא:User Profile: ID: <id> Created: <createdDate> Name: <name or 'Not provided'> Email: <email or 'Not provided'> Age: <age or 'Not provided'> Display Name: <displayName> -------------------- מתודה:
<strong>void updateEmail(String? newEmail)</strong>- מעדכנת את המאפיין
emailבערך החדש.
- מעדכנת את המאפיין
- מתודה:
<strong>String getDisplayName()</strong>- אם
nameאינו null, מגדירה אתdisplayName = name!(באמצעות אופרטור האישור ל-null) - מחזירה את הערך הנוכחי של
displayName
- אם
חשוב: לאחר עדכון המאפיין name, עליך לקרוא ל-getDisplayName() כדי לעדכן את השדה displayName לפני הדפסת הפרופיל שוב.
השלם את הקוד כדי ליצור פרופיל, לעדכן אותו ולהציג את המידע כפי שמופיע בפלט הצפוי.
נסו בעצמכם
void main() {
// צור פרופיל משתמש
final profile = UserProfile(1, 'today');
// הדפס את הפרופיל הראשוני
profile.printProfile();
// עדכן את הפרופיל
profile.name = 'John Doe';
profile.updateEmail('john@example.com');
profile.age = 30;
// עדכן את שם התצוגה והדפס את הפרופיל המעודכן
profile.getDisplayName(); // קרא לזה כדי לעדכן את displayName
profile.printProfile();
}
class UserProfile {
// TODO: הוסף מאפיינים (id, createdDate, name, email, age, displayName)
// TODO: צור בנאי
// TODO: ממש את המתודה printProfile()
// TODO: ממש את המתודה updateEmail()
// TODO: ממש את המתודה getDisplayName()
}כל השיעורים ביחידה יסודות
7עבודה עם מחרוזות
שרשור מחרוזותאינטרפולציה של מחרוזותמחרוזות מרובות שורותמאפייני מחרוזותשיטות בסיסיות למחרוזות10אוספים - יסודות המפות
מהן מפות?יצירת מפהגישה לערכים לפי מפתחזוגות מפתח-ערךקבלת גודל המפהקבלת המפתחותקבלת הערכיםבדיקה אם מפתח קיים13בטיחות null לעומק
הבנת nullטיפוסים שניתנים ל-nullטיפוסים שאינם ניתנים ל-nullאופרטור הצהרת nullאתחול מאוחרסיכום – טיפול בטוח ב-null2משתנים וטיפוסי נתונים בסיסיים
מהם משתנים?מחרוזותמספרים שלמים (int)מספרים מסוג double (double)ערכים בוליאניים (bool)הסקת טיפוס באמצעות 'var'משתנים סופייםמשתנים קבועיםמוסכמות למתן שמותבטיחות בסיסית מול nullסיכום – הכרזה על משתנים8זרימת בקרה – לולאות
לולאת 'for'לולאת 'while'לולאת 'do-while'שימוש ב-'break' בלולאותשימוש ב-'continue' בלולאותסיכום – חזרה על קוד3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמיםאופרטור מודולוהגדלה והקטנהקיצורי השמהסיכום - חישובים פשוטים6זרימת בקרה - קבלת החלטות
הוראת 'if'הוראת 'else'הוראת 'else if'חזרה - החלטות פשוטותהוראות 'if' מקוננותהוראת 'switch'9אוספים - יסודות הרשימות
מהן רשימות?יצירת רשימהגישה לפי אינדקסקבלת אורך הרשימההוספת איבריםהסרת איבריםבדיקה אם הרשימה ריקהמעבר על רשימהתרגלו בעצמכם: קומפיילר Dart אונליין