Menu
CoddyTech

まとめ - Null を安全に扱う

CoddyのDartジャーニー「基礎」セクションの一部。レッスン 82/94。

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. コンストラクター:
    • 必須パラメーターとしてidとcreatedDateを受け取ります
    • displayNameを"Guest"に初期化します
  5. メソッド:void printProfile() 次の形式でユーザープロフィールを出力します。

    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. メソッド:void updateEmail(String? newEmail)
    • emailプロパティを新しい値で更新します。
  7. メソッド:String getDisplayName()
    • 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() メソッドを実装する
}

基礎のすべてのレッスン

自分で練習してみよう: Dartオンラインコンパイラ