Menu
CoddyTech

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

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

challenge icon

אתגר

קל

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

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

  1. מאפיינים שאינם ניתנים ל-null (חייבים תמיד להכיל ערך):
    • id מסוג int
    • createdDate מסוג String
  2. מאפיינים שניתנים ל-null (יכולים להיות null בעת האתחול):
    • name מסוג String?
    • email מסוג String?
    • age מסוג int?
  3. מאפיין מאותחל באיחור:
    • displayName מסוג String, שמוצהר באמצעות מילת המפתח late
  4. בנאי:
    • מקבל את id ואת createdDate כפרמטרים נדרשים
    • מאתחל את displayName לערך "Guest"
  5. מתודה: void printProfile() מדפיסה את פרופיל המשתמש בפורמט הבא:

    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. מתודה: void updateEmail(String? newEmail)
    • מעדכנת את המאפיין email בערך החדש.
  7. מתודה: String getDisplayName()
    • אם 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 אונליין