所以我看到的代码是这样的:
class Whatever {
final String name;
const Whatever(this.name);
}
构造函数被标记为const
这一事实改变了什么?有什么效果吗?
我读过这样一篇文章:
对于要作为编译时常量的变量,请使用const.如果 常量变量位于类级别,将其标记为静电常量. (实例变量不能为常量.)
但是对于类构造函数来说,这似乎没有意义.
所以我看到的代码是这样的:
class Whatever {
final String name;
const Whatever(this.name);
}
构造函数被标记为const
这一事实改变了什么?有什么效果吗?
我读过这样一篇文章:
对于要作为编译时常量的变量,请使用const.如果 常量变量位于类级别,将其标记为静电常量. (实例变量不能为常量.)
但是对于类构造函数来说,这似乎没有意义.
static const someName = const Whatever()
这样的常量字段;如果类没有常量构造函数,则不能用于初始化常量字段.我认为在构造函数中指定这一点是有意义的.您仍然可以在运行时使用new Whatever()
创建实例,也可以添加工厂构造函数.
另请参阅
"旧式"(仍然有效)枚举是如何使用const的一个很好的例子