使用"final"进行Class实例化

Bri*_* Oh 1 dart

前几天(下面)我遇到了以下代码,并想知道它是否在Dart中实现了任何重要意义,而不是类实例化无法更改.我确实阅读了一些关于Java的SO帖子,但是它们似乎没有结论,并不一定适用于Dart.我不会那样编码(最后),但也许我应该.在这个例子中使用"final"有什么重大意义吗?它实现了什么?

import 'dart:math';

final _random = new Random();
Run Code Online (Sandbox Code Playgroud)

Dar*_*tle 5

Dart:启动和运行:

如果您从未打算更改变量,请使用finalconst代替var或替代类型.甲final变量可以设置仅一次; 一个const变量是一个编译时间常数.

声明为final的本地,顶级或类变量在第一次使用时初始化.

所以在final这里使用有三个好处:

  1. 如果某些代码错误地尝试设置_random另一个时间,则会生成错误.
  2. 对于其他程序员(或以后的同一程序员)而言,_random从未打算进行更改也更加清晰.
  3. _random 在使用之前不会初始化,因此应用程序将更快启动.

出于这些原因,我认为这是一个很好的用途final; 当然,如果没有它,代码将"正常工作",但这样做会更好.

简而言之,我认为这本书提供了合理的建议:"如果你从不打算改变变量,请使用finalconst".