Menu
Coddy logo textTech

Podsumowanie — bezpieczna obsługa wartości null

Część sekcji Podstawy ścieżki Dart w Coddy. Lekcja 82 z 94.

challenge icon

Wyzwanie

Łatwy

Tworzysz system profili użytkowników dla aplikacji mobilnej. Utwórz klasę UserProfile, która zademonstruje Twoje zrozumienie funkcji bezpieczeństwa null w Dart.

Zaimplementuj klasę UserProfile z następującymi elementami:

  1. Właściwości, które nie mogą przyjmować wartości null (zawsze muszą mieć wartość):
    • id typu int
    • createdDate typu String
  2. Właściwości, które mogą przyjmować wartość null (mogą mieć wartość null podczas inicjalizacji):
    • name typu String?
    • email typu String?
    • age typu int?
  3. Właściwość inicjalizowana z opóźnieniem:
    • displayName typu String, zadeklarowana z użyciem słowa kluczowego late
  4. Konstruktor:
    • Przyjmuje id i createdDate jako wymagane parametry
    • Inicjalizuje displayName wartością "Guest"
  5. Metoda: <strong>void printProfile()</strong> Wyświetla profil użytkownika w następującym formacie:

    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. Metoda: <strong>void updateEmail(String? newEmail)</strong>
    • Aktualizuje właściwość email nową wartością.
  7. Metoda: <strong>String getDisplayName()</strong>
    • Jeśli name nie ma wartości null, przypisuje displayName = name! (używając operatora asercji null)
    • Zwraca bieżącą wartość displayName

Ważne: Po zaktualizowaniu właściwości name musisz wywołać getDisplayName(), aby zaktualizować pole displayName przed ponownym wyświetleniem profilu.

Uzupełnij kod, aby utworzyć profil, zaktualizować go i wyświetlić informacje zgodnie z oczekiwanym wynikiem.

Spróbuj swoich sił

void main() {
  // Utwórz profil użytkownika
  final profile = UserProfile(1, 'today');
  
  // Wyświetl początkowy profil
  profile.printProfile();
  
  // Zaktualizuj profil
  profile.name = 'John Doe';
  profile.updateEmail('john@example.com');
  profile.age = 30;
  
  // Zaktualizuj nazwę wyświetlaną i wyświetl zaktualizowany profil
  profile.getDisplayName(); // Wywołaj tę metodę, aby zaktualizować displayName
  profile.printProfile();
}

class UserProfile {
  // TODO: Dodaj właściwości (id, createdDate, name, email, age, displayName)
  
  // TODO: Utwórz konstruktor
  
  // TODO: Zaimplementuj metodę printProfile()
  
  // TODO: Zaimplementuj metodę updateEmail()
  
  // TODO: Zaimplementuj metodę getDisplayName()
}

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Dart online