Dart:常量变量必须用常量值初始化

3 dart

foo已经是一个const值时,为什么会出现错误?

const foo = const [10, 20];
const bar = foo[0] * 2; // error: const variables must be initialized with a constant value. 
Run Code Online (Sandbox Code Playgroud)

Rém*_*let 9

这是因为虽然用于创建第二个常量的变量是常量,但您还使用了运算符 []——它不是编译时常量。

所以虽然你可以这样做:

const a = 42;
const b = a * 3;
Run Code Online (Sandbox Code Playgroud)

你不能这样做:

const array = [42];
const b = a[0];
Run Code Online (Sandbox Code Playgroud)