簡體   English   中英

Dart 類可選構造函數參數默認值導致錯誤

[英]Dart class optional constructor parameter with default value leads to error

我是 Dart 的新手並且來自 TypeScript 我正在努力解決以下錯誤:

可選參數的默認值必須是常量。

對於此代碼:

class Counter {
  int base;
  List<dynamic> bonus;

  Counter({this.base = 0, this.bonus = []}); // Error here

  // omitted counter methods
}

class OffensiveAttributes {
  Counter oneHanded;

  OffensiveAttributes(
      {this.oneHanded = Counter(base: 0)}); // And error here
}

我想要實現的是,當創建一個新的OffensiveAttributes實例時,您應該能夠將base設置為2例如。 我當然可以這樣做:

Counter oneHanded = Counter(base: 0);

OffensiveAttributes(
      {this.oneHanded});

但是如果在創建實例時沒有傳入oneHanded ,我最終會得到一個我不想要的null值。

如果我嘗試在Counter添加constfinal ,當我需要使用addsubtract更改base值時,我會卡住。

這樣做的正確方法是什么?

在這里,您需要傳遞如下所示的 const []

class Counter {
  int base;
  List<dynamic> bonus;

  Counter({this.base = 0, this.bonus = const[]}); 

  // omitted counter methods
}

暫無
暫無

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

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