有什么用:在飞镖函数中



我正在测试一些 Flutter 应用程序并遇到:在 Dart 函数中,它的用途是什么?

我在Firebase for Flutter教程中找到了它。我试图在谷歌中搜索它,但找不到任何东西。

class Record {
  final String name;
  final int votes;
  final DocumentReference reference;
  Record.fromMap(Map<String, dynamic> map, {this.reference})
      : assert(map['name'] != null),
        assert(map['votes'] != null),
        name = map['name'],
        votes = map['votes'];
  Record.fromSnapshot(DocumentSnapshot snapshot)
      : this.fromMap(snapshot.data, reference: snapshot.reference);
  @override
  String toString() => "Record<$name:$votes>";
}

结果工作正常,我只想知道:用于什么。

来自 https://dart.dev/guides/language/language-tour,构造函数部分:

  1. 超类

在冒号 (:) 之后指定超类构造函数,紧挨着构造函数主体(如果有(。

class Employee extends Person {
  Employee() : super.fromJson(getDefaultData());
  // ···
}
  1. 实例变量

除了调用超类构造函数之外,还可以在构造函数体运行之前初始化实例变量。用逗号分隔初始值设定项。

// Initializer list sets instance variables before
// the constructor body runs.
Point.fromJson(Map<String, num> json)
    : x = json['x'],
      y = json['y'] {
  print('In Point.fromJson(): ($x, $y)');
}

您的示例:

因此,在您的情况下,fromMap -Method 会执行一些断言(在运行构造函数之前(并将变量分配给namevote。由于这些变量是最终的,因此必须在初始化记录实例之前分配它们!

fromSnapshot只是使用 fromMap 作为超级构造函数。

最新更新