给定以下类,Dart Editor (build 5549) 给了我一些相互矛盾的反馈(根据构造函数正文中的注释):
class Example {
final int foo;
Example() :
foo = 0
{
foo = 1; // 'cannot assign value to final variable "foo"'
this.foo = 2; // ok
}
}
更令人困惑的是,它会很高兴地为这两行生成等效的(工作的)javascript。方法的情况似乎与构造函数的情况相同;这尤其使我相信在这两种情况下都不允许这样做。
Dart 样式指南建议使用公共最终字段而不是具有公共 getter 的私有字段。我在理论上喜欢这个,但非平凡的成员构造不能真正进入初始化列表。
我是否错过了将前者报告为错误而后者没有报告的正当理由?还是我现在应该提交错误?