我想在dart中声明一个字段,并且仅覆盖getter的功能,但是我不确定如何/是否可行。

class Pony {
  String ponyGreeting;
  String ponyName;
  Pony(this.ponyGreeting, this.ponyName);

  String get ponyGreeting => "$ponyGreeting I'm $ponyName!";
}

不过,这会导致错误,因为我已经定义了“ponyGreeting”。我不能仅仅摆脱ponyGreeting字段,因为我想使用构造函数来设置它,如果我创建了一个setter,我将不得不在某个地方设置该值,而我实际上并不需要多余的属性。

最佳答案

您可以在getter旁边使用一个私有(private)变量:

class Pony {
  String _ponyGreeting;
  String ponyName;
  Pony(this._ponyGreeting, this.ponyName);

  String get ponyGreeting => "$_ponyGreeting I'm $ponyName!";
}

10-01 21:04