non_constant_list_element
const 列表字面量中的值必須是常量。
描述
#當常量列表字面量中的元素不是常量值時,分析器會生成此診斷資訊。該列表字面量可以是顯式常量(因為它帶有 const 關鍵字字首),也可以是隱式常量(因為它出現在常量上下文中)。
示例
#以下程式碼會產生此診斷資訊,因為 x 不是常量,即使它出現在隱式常量列表字面量中
dart
var x = 2;
var y = const <int>[0, 1, x];常見修復
#如果列表需要是常量列表,則將該元素轉換為常量。在上面的示例中,您可以在 x 的宣告中新增 const 關鍵字
dart
const x = 2;
var y = const <int>[0, 1, x];如果表示式不能變成常量,則列表也不能是常量,因此您必須更改程式碼,使列表不是常量。在上面的示例中,這意味著移除列表字面量之前的 const 關鍵字
dart
var x = 2;
var y = <int>[0, 1, x];