次のクラスを考えると、Dart エディター (ビルド 5549) は、(コンストラクター本体のコメントに従って) いくつかの矛盾するフィードバックを返します。
class Example {
final int foo;
Example() :
foo = 0
{
foo = 1; // 'cannot assign value to final variable "foo"'
this.foo = 2; // ok
}
}
さらに紛らわしいことに、両方の行に対して同等の (動作する) JavaScript が喜んで生成されます。メソッドの場合もコンストラクターの場合も状況は同じようです。これは特に、両方のケースで許可されないことを意図していたと私に信じさせます.
Dart スタイル ガイドでは、パブリック ゲッターを含むプライベート フィールドではなく、パブリック 最終フィールドを使用することを提案しています。私は理論的にはこれが好きですが、自明ではないメンバーの構築は実際には初期化子リストに入ることはできません。
前者はエラーとして報告され、後者は報告されない正当な理由がありませんか? それとも、今すぐバグを報告する必要がありますか?