前几天(下面)我遇到了以下代码,并想知道它是否在Dart中实现了任何重要的事情,而不是类实例化无法更改。我确实阅读了一些关于Java的SO帖子,但是它们似乎没有结论,并不一定适用于Dart。我不会那样编码(最后),但也许我应该。在这个例子中使用“final”有什么重大意义吗?它实现了什么?
import 'dart:math';
final _random = new Random();
答案 0 :(得分:5)
如果您从不打算更改变量,请使用
final
或const
,而不是var
或者除了类型之外。final
变量只能设置一次;const
变量是编译时常量。声明为final的本地,顶级或类变量在第一次使用时初始化。
这里使用final
有三个好处:
_random
,则会产生错误。_random
永远不会被更改。_random
在使用之前未初始化,因此应用程序将更快启动。出于这些原因,我认为这是final
的良好用途;当然,没有它,代码就会“工作”,但这样做会更好。
简而言之,我认为本书提供了合理的建议:“如果您从未打算更改变量,请使用final
或const
”。
答案 1 :(得分:1)
声明为final的本地,顶级或类变量在第一次使用时初始化。最终变量的延迟初始化可以帮助应用程序更快地启动。