Menu
Coddy logo textTech

복습 - 안전한 널 처리

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

challenge icon

챌린지

쉬움

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

다음 항목을 포함하는 클래스 UserProfile을 구현하세요.

  1. Non-nullable 속성 (항상 값을 가져야 함):
    • 타입이 intid
    • 타입이 StringcreatedDate
  2. Nullable 속성 (초기화 시 null일 수 있음):
    • 타입이 String?name
    • 타입이 String?email
    • 타입이 int?age
  3. 지연 초기화 속성:
    • 타입이 String이고 late 키워드를 사용하여 선언된 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() 메서드 구현
}

기초의 모든 레슨

직접 연습해 보세요: 온라인 Dart 컴파일러