首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Dart只允许在初始化列表中启动最终变量?

为什么Dart只允许在初始化列表中启动最终变量?
EN

Stack Overflow用户
提问于 2018-11-28 18:31:22
回答 1查看 138关注 0票数 1

我开始学习Dart,并且我可以看到,与许多其他语言相反的final变量不能在构造函数体本身内分配一个值。

为什么Dart会施加这样的限制?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-28 20:39:36

在执行构造函数体之前,需要完成最后字段的初始化,因为在构造函数体中,允许读取对this (及其成员)的访问。

否则,很难保证何时访问最终字段是安全的。

在构造函数体中允许对最终字段进行写入访问的其他语言中,可以使用意外行为编写对象初始化代码,例如,在初始化前读取最后字段。省道保护你不那么做。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53525912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档