簡體   English   中英

dart class 構造函數中的可選 Arguments

[英]Optional Arguments in dart class constructor

為什么在嘗試構造我的構造函數時出現錯誤我想要一個命名參數但不是必需的我如何解決這個問題

class Task {
   int id;
   String title;
   String description;

  **Task({this.id , this.title , this.description}); // Giving me Errors here**

  Map<String , dynamic> toMap()
  {
    return {
      'id' : id,
      'title' : title,
      'description' : description,
    };
  }
  @override
  String toString() {
    return 'Task{id: $id, name: $title, age: $description}';
  }
}

如果您不希望required arguments ,則必須通過在其類型中添加問號來允許它們為null ,因此 Dart 將知道它們不需要初始化。 像這樣:

   int? id;
   String? title;
   String? description;

另一種解決方案是在構造函數中給它們一個默認值,但要小心為它們分配的值不會與代碼的 rest 沖突:

Task({this.id=-1, this.title='Title' , this.description = 'Description'});

選擇最適合您的方法:您還可以混合使用這兩種解決方案,例如使某些屬性可為空並為其他屬性提供默認值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM