以下代码出现错误df.index.name = ''
:
Error: Cannot invoke a non-'const' constructor where a const expression is expected.
而以下命令没有,奇怪的是,class TestConst {
final num x;
final num y;
TestConst(this.x, this.y);
}
void main() {
TestConst myconst1 = const TestConst(1,2);
TestConst myconst2 = const TestConst(1,2);
print(identical(myconst1, myconst2));
}
实际上只有const构造函数时,identical(myconst1, myconst2)
返回false
呢? :
TestConst
答案 0 :(得分:2)
const
意味着构造函数可以创建一个const
对象(如果调用站点选择加入,并且所有构造参数也都是{{1} }),而不仅仅是创建const
对象。
Language Tour does mention this(但不是很详细):
常量构造函数并不总是创建常量。有关详细信息,请参见using constructors上的部分。
...
某些类提供constant constructors。要使用常量构造函数创建编译时常数,请将
const
关键字放在构造函数名称之前: