Menu
Coddy logo textTech

복습 - 안전한 널 처리

Coddy Dart 여정의 기초 섹션에 포함된 레슨 — 94개 중 82번째.

challenge icon

챌린지

쉬움

모바일 앱을 위한 사용자 프로필 시스템을 구축하고 있습니다. Dart의 null 안전 기능에 대한 이해를 보여주는 UserProfile 클래스를 생성하세요.

다음과 같이 UserProfile 클래스를 구현하세요:

  1. Null 불가능 속성 (항상 값이 있어야 함):
    • int 타입의 id
    • String 타입의 createdDate
  2. Null 가능 속성 (초기화 시 null일 수 있음):
    • String? 타입의 name
    • String? 타입의 email
    • int? 타입의 age
  3. 지연 초기화 속성:
    • late 키워드를 사용하여 선언한 String 타입의 displayName
  4. 생성자:
    • idcreatedDate를 필수 매개변수로 받음
    • 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 속성을 업데이트한 후, 프로필을 다시 출력하기 전에 displayName 필드를 업데이트하기 위해 getDisplayName()를 호출해야 합니다.

예상 출력과 같이 프로필을 생성하고 업데이트하며 정보를 표시하도록 코드를 완성하세요.

직접 해보기

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() 메서드 구현
}

기초의 모든 레슨