在 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/

10-13 00:26