Menu
Coddy logo textTech

סיכום – טיפול בטוח ב-null

חלק מהיחידה יסודות במסלול ה-Dart של Coddy. שיעור 82 מתוך 94.

challenge icon

אתגר

קל

אתה בונה מערכת פרופילי משתמשים לאפליקציה לנייד. צור מחלקה UserProfile שמדגימה את ההבנה שלך בתכונות בטיחות ה-null של Dart.

ממש מחלקה UserProfile עם הפרטים הבאים:

  1. מאפיינים שאינם nullable (חייבים תמיד לקבל ערך):
    • id מסוג int
    • createdDate מסוג String
  2. מאפיינים nullable (יכולים להיות null בעת האתחול):
    • name מסוג String?
    • email מסוג String?
    • age מסוג int?
  3. מאפיין שמאותחל באיחור:
    • displayName מסוג String, מוגדר באמצעות מילת המפתח late
  4. בנאי:
    • מקבל את id ואת createdDate כפרמטרים נדרשים
    • מאתחל את displayName לערך "Guest"
  5. מתודה: <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>
    -------------------
  6. מתודה: <strong>void updateEmail(String? newEmail)</strong>
    • מעדכנת את המאפיין email בערך החדש.
  7. מתודה: <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()
}

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

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