标签: dart
我开始学习Dart,我发现与其他语言相反,final变量无法在构造函数主体内部分配值。
final
为什么Dart施加此限制?
答案 0 :(得分:4)
最终字段的初始化需要在执行构造函数主体之前完成,因为在构造函数主体中允许对this(及其成员)的读取访问。
this
否则,很难保证何时可以安全访问最终字段。
在其他在构造函数主体中允许对final字段进行写访问的语言中,可以编写具有意外行为的对象初始化代码,例如,在final字段初始化之前读取该字段。 Dart可以防止您这样做。