在Java中,您可以这样做:

class A {    
    private final int x;

    public A() {
        x = 5;
    }
}

在Dart中,我try :

class A {    
    final int x;

    A() {
        this.x = 5;
    }
}

我收到两个编译错误:

最后一个变量"x"必须初始化.

"x"不能用作设置器,因为它是最后一个.

有没有办法在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));
}

Dart相关问答推荐

为什么我们在dart 里有工具?

观察对象的状态

为什么 Dart 的编译器认为代码可能为空,而代码保证它不能为空?

当 ng-repeat 嵌套在 AngularDart 中时访问外部 $index

从 Dart 中的工厂构造函数返回 null 是否可以接受?

FlutterError (setState() 在 dispose() 之后调用:(生命周期状态:defunct,not mounted)

Flutter - 自定义按钮点击区域

访问用户环境变量

Package:flutter/src/widgets/overlay.dart':Failed assertion: line 133 pos 12: "_overlay != null"

如何在flatter中使用SQFlite更新数据库表

如何解决Id does not exist错误?

有没有更好的方法来解析 Dart 中的 int

Dart 中 http 和 HttpClient 的区别

如何在 Dart 中创建我们自己的metadata元数据?

如何在 Dart 中创建 StreamTransformer?

Dart 是否有断点语句?

dart中是否有类似struct struct 的东西?

比较在 Dart 中创建单例的方法

如何在 Dart 中逐个字符地迭代字符串?

如何通过 Dart 中的值获取 Map 键?