7

Dart エディター (0.5.16_r23799) をアップグレードしたところ、バグや警告のないコードはなくなりました。

class Fubar {
  const BAR = 1000000;  
  Fubar(){   
  }
}

で始まる行にconstは、マーカーと次のメッセージがあります。

「const」として宣言できるのは静的フィールドのみです

このch02-final-constを読みましたが、何もありません。

この投稿dart-const-static-fieldsは、なしでconst modifier implies static使用できない場合は代わりに使用する必要があることを示しています...しかし、私が見逃したドキュメント/投稿は何ですか? これを行うつもりです:conststaticfinal

Fubar f = new Fubar();
some = f.BAR;
4

1 に答える 1

6

これは、6 月 4 日の Dart 言語設計会議からのメモに関連する最近の変更です。

const インスタンス変数

Gilad の見解は、スコープを除いて、それらは statics のように機能するべきだというものです。ただし、インスタンス メタデータの VM 実装が複雑になっているようです。3 つのソリューション:

  1. const インスタンス フィールドはありません。
  2. メタデータは静的にスコープされます。
  3. 正しく行うようにしてください。

Lars は 1 が好きです。私は、1 はユーザーにとって物事を簡素化すると言います。現在、人々は static final const などと混同しています。Gilad は 1 で問題ありません。

構文が「static const」か、単に「const」かを尋ねました。定数で「静的」を行う必要がある場合、ユーザーは混乱します。

ラースは、彼らがシステムを理解していないので混乱していると言います. 「静的」を要求すると、何が起こっているのかを理解するのに役立ちます。

于 2013-06-12T20:45:36.817 に答える