Dart 如何从构造函数初始化器列表中的常量构造函数访问属性?
我很难理解常量构造函数和构造函数初始值设定项如何在dart中列出 我有一个小代码:Dart 如何从构造函数初始化器列表中的常量构造函数访问属性?,dart,constructor,initialization,constants,Dart,Constructor,Initialization,Constants,我很难理解常量构造函数和构造函数初始值设定项如何在dart中列出 我有一个小代码: A类{ 常数A(); } B类{ 常数B(); 最终A=常数A(); } C类{ 常数C():a=常数a(); 期末考试A; } D类{ 常数D():b=常数b(); 期末考试B; } E类{ 常数E():a=常数B().a;// 这让我有点困惑,为什么B()可以是一个常量而不是B()。a不是吗?我想如果一个对象是一个常量构造函数,B()。a也应该是一个常量 DART没有等同于 CONTXPRPR ,如C++。
A类{
常数A();
}
B类{
常数B();
最终A=常数A();
}
C类{
常数C():a=常数a();
期末考试A;
}
D类{
常数D():b=常数b();
期末考试B;
}
E类{
常数E():a=常数B().a;//
这让我有点困惑,为什么B()
可以是一个常量而不是B()。a
不是吗?我想如果一个对象是一个常量构造函数,B()。a
也应该是一个常量
DART没有等同于 CONTXPRPR <代码>,如C++。Dart无法传递那些方法/函数可以被计算和调用为编译时常量表达式。< /P>
B().a
在B()
上调用名为a
的getter。仅仅因为const B()
是const
对象并不意味着const B().a
返回常量值。例如,B
的实现可以是:
B类{
常数B();
//每次返回一个新的'a'实例。
A get A=>A();
}
谢谢!有没有办法指定此getter是最终的常量值?或者我无能为力?正如我所说,Dart目前无法传达这一点,所以您无能为力。