跳到主要內容

assignment_to_const

常量變數在初始化後不能再被賦值。

描述

#

分析器在發現對帶有 const 修飾符的頂層變數、靜態欄位或區域性變數進行賦值時會產生此診斷資訊。編譯時常量的值在執行時不能改變。

示例

#

以下程式碼會產生此診斷資訊,因為變數 c 儘管帶有 const 修飾符,卻被賦予了值

dart
const c = 0;

void f() {
  c = 1;
  print(c);
}

常見修復方法

#

如果變數必須可賦值,則移除 const 修飾符

dart
var c = 0;

void f() {
  c = 1;
  print(c);
}

如果常量不應被修改,則移除賦值操作,或使用區域性變數代替對該常量的引用

dart
const c = 0;

void f() {
  var v = 1;
  print(v);
}