prefer_const_literals_to_create_immutables
使用 'const' 字面量作為 '@immutable' 類的建構函式引數。
描述
#當非 const 的列表、Map 或 Set 字面量作為引數傳遞給標註有 @immutable 的類中宣告的建構函式時,分析器會產生此診斷。
示例
#以下程式碼會產生此診斷,因為列表字面量 ([1]) 被傳遞給不可變類中的建構函式,但它不是一個常量列表
dart
import 'package:meta/meta.dart';
@immutable
class C {
final f;
const C(this.f);
}
C c = C([1]);常見修復
#如果可以將上下文設定為常量上下文,則這樣做
dart
import 'package:meta/meta.dart';
@immutable
class C {
final f;
const C(this.f);
}
const C c = C([1]);如果上下文無法設定為常量上下文,但建構函式可以使用 const 呼叫,則在建構函式呼叫前新增 const
dart
import 'package:meta/meta.dart';
@immutable
class C {
final f;
const C(this.f);
}
C c = const C([1]);如果上下文無法設定為常量上下文且建構函式無法使用 const 呼叫,則在集合字面量前新增關鍵字 const
dart
import 'package:meta/meta.dart';
@immutable
class C {
final f;
const C(this.f);
}
C c = C(const [1]);