Java では次の操作が可能です:
class A {
private final int x;
public A() {
x = 5;
}
}
Dart では、次のことを試しました:
class A {
final int x;
A() {
this.x = 5;
}
}
2 つのコンパイル エラーが発生します。
最後の変数 'x' を初期化する必要があります。
そして
'x' は final なので、セッターとして使用できません。
Dart のコンストラクターで最終プロパティを設定する方法はありますか?
ベストアンサー1
あなたできないコンストラクタ本体で final フィールドをインスタンス化します。そのためには特別な構文があります:
class Point {
final num x;
final num y;
final num distanceFromOrigin;
// Old syntax
// Point(x, y) :
// x = x,
// y = y,
// distanceFromOrigin = sqrt(pow(x, 2) + pow(y, 2));
// New syntax
Point(this.x, this.y) :
distanceFromOrigin = sqrt(pow(x, 2) + pow(y, 2));
}