跳到主內容

return_in_generative_constructor

建構函式不能返回值。

描述

#

當一個生成式建構函式包含一個指定要返回值的 return 語句時,分析器會生成此診斷。生成式建構函式總是返回建立的物件,因此不能返回不同的物件。

示例

#

以下程式碼會產生此診斷,因為 return 語句包含表示式

dart
class C {
  C() {
    return this;
  }
}

常見修復方法

#

如果建構函式應建立新例項,則移除 return 語句或表示式

dart
class C {
  C();
}

如果建構函式不應建立新例項,則將其轉換為工廠建構函式

dart
class C {
  factory C() {
    return _instance;
  }

  static C _instance = C._();

  C._();
}