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