跳到主要内容

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);
}