まとめ - Null を安全に扱う
CoddyのDartジャーニー「基礎」セクションの一部 — レッスン 82/94。
チャレンジ
簡単モバイルアプリ向けのユーザー プロファイル システムを構築してください。UserProfile クラスを作成し、Dart の null 安全性機能に対する理解を示してください。
UserProfile クラスを実装し、次の要素を含めてください:
- 非 nullable プロパティ(常に値が必要です):
idの型はintcreatedDateの型はString
- Nullable プロパティ(初期化時に null 可能です):
nameの型はString?emailの型はString?ageの型はint?
- 遅延初期化プロパティ:
displayNameの型はStringで、lateキーワードを使用して宣言
- コンストラクタ:
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 プロパティを更新した後、プロファイルを再度印刷する前に 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() メソッドを実装
}