【发布时间】:2019-10-23 10:16:33
【问题描述】:
const color = Colors.red; // no error
const color100 = Colors.red[100]; // error
如果Colors.red 是编译时间常数,为什么Colors.red[100] 不是。
【问题讨论】:
-
我的猜测是,colors.dart(其中定义了 ColorSwatch,MaterialColor 的基类)中的重载 [] 运算符方法未定义为 const,而普通构造函数是。
-
我的评论部分错误。 Colors.red 实际上是一个静态 const 字段,它之所以有效,是因为 MaterialColor 的构造函数也是 const。