我开始学习Dart,并且我可以看到,与许多其他语言相反的final变量不能在构造函数体本身内分配一个值。
为什么Dart会施加这样的限制?
发布于 2018-11-28 20:39:36
在执行构造函数体之前,需要完成最后字段的初始化,因为在构造函数体中,允许读取对this (及其成员)的访问。
否则,很难保证何时访问最终字段是安全的。
在构造函数体中允许对最终字段进行写入访问的其他语言中,可以使用意外行为编写对象初始化代码,例如,在初始化前读取最后字段。省道保护你不那么做。
https://stackoverflow.com/questions/53525912
复制相似问题