【发布时间】:2019-12-29 12:46:12
【问题描述】:
我正在通过 Firebase 获取 Flutter 文档并找到了这一行,我不知道为什么使用“:”这个符号,我是 dart 新手
Record.fromMap(Map<String, dynamic> map, {this.reference})
: assert(map['name'] != null),
assert(map['votes'] != null),
name = map['name'],
votes = map['votes'];
为什么我不能这样初始化
Record.fromMap(Map<String, dynamic> map, {this.reference}) {
name = map['name'],
votes = map['votes'];
}
代码实验室链接https://codelabs.developers.google.com/codelabs/flutter-firebase/#4
断言函数有什么作用?
【问题讨论】:
-
您不能在构造函数中初始化
final成员,因为构造函数主体只是另一个使用构造函数参数调用的方法,它可以调用类中的任何非静态方法。这意味着该成员将不再是final,因为它将在以后更改。对于其余部分,您可以看到已经回答了您的问题的问题(将其标记为重复)。