在 Java 中,您可以这样做:
class A {
private final int x;
public A() {
x = 5;
}
}
在 Dart 中,我尝试过:
class A {
final int x;
A() {
this.x = 5;
}
}
我收到两个编译错误:
和
有没有办法在 Dart 的构造函数中设置最终属性?
最佳答案
您不能在构造函数体中实例化 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));
}
关于constructor - 如何在构造函数中初始化最终类属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42864913/