복습 - 안전한 널 처리
Coddy Dart 여정의 기초 섹션에 포함된 레슨 — 94개 중 82번째.
챌린지
쉬움모바일 앱을 위한 사용자 프로필 시스템을 구축하고 있습니다. Dart의 null 안전 기능에 대한 이해를 보여주는 UserProfile 클래스를 생성하세요.
다음과 같이 UserProfile 클래스를 구현하세요:
- Null 불가능 속성 (항상 값이 있어야 함):
int타입의idString타입의createdDate
- Null 가능 속성 (초기화 시 null일 수 있음):
String?타입의nameString?타입의emailint?타입의age
- 지연 초기화 속성:
late키워드를 사용하여 선언한String타입의displayName
- 생성자:
id와createdDate를 필수 매개변수로 받음displayName을"Guest"로 초기화
메서드:
<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> -------------------- 메서드:
<strong>void updateEmail(String? newEmail)</strong>email속성을 새 값으로 업데이트합니다.
- 메서드:
<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() 메서드 구현
}