Dart 对类实例化使用“final”

Dart 对类实例化使用“final”,dart,Dart,在下面的几天前,我遇到了下面的代码,我想知道除了类实例化不能更改之外,它是否在Dart中实现了任何有意义的东西。我确实读过一些关于Java的SO帖子,但是这些帖子似乎没有定论,也不一定适用于Dart。我不会用final这样编码,但也许我应该这样做。在这种情况下使用final有什么重要意义吗?它实现了什么 import 'dart:math'; final _random = new Random(); 从: 声明为final的本地、顶级或类变量在第一次使用时被初始化。延迟初始化最终变量有助于

在下面的几天前,我遇到了下面的代码,我想知道除了类实例化不能更改之外,它是否在Dart中实现了任何有意义的东西。我确实读过一些关于Java的SO帖子,但是这些帖子似乎没有定论,也不一定适用于Dart。我不会用final这样编码,但也许我应该这样做。在这种情况下使用final有什么重要意义吗?它实现了什么

import 'dart:math';

final _random = new Random();
从:

声明为final的本地、顶级或类变量在第一次使用时被初始化。延迟初始化最终变量有助于应用程序更快启动。

来自:

声明为final的本地、顶级或类变量在第一次使用时被初始化。延迟初始化最终变量有助于应用程序更快启动。

来自:

如果您从未打算更改变量,请使用final或const来代替var或添加到类型中。最终变量只能设置一次;常量变量是编译时常量

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

因此,在这里使用final有三个好处:

如果某些代码错误地试图在另一时间设置_random,则会生成错误。 对于其他程序员或同一个程序员来说,更清楚的是,random永远不会被更改。 _random在使用之前不会初始化,因此应用程序启动速度会更快。 由于这些原因,我认为这是对决赛的一个很好的运用;当然,没有它代码也可以工作,但这样更好

简言之,我认为这本书提供了合理的建议:如果您从未打算更改变量,请使用final或const。

From:

如果您从未打算更改变量,请使用final或const来代替var或添加到类型中。最终变量只能设置一次;常量变量是编译时常量

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

因此,在这里使用final有三个好处:

如果某些代码错误地试图在另一时间设置_random,则会生成错误。 对于其他程序员或同一个程序员来说,更清楚的是,random永远不会被更改。 _random在使用之前不会初始化,因此应用程序启动速度会更快。 由于这些原因,我认为这是对决赛的一个很好的运用;当然,没有它代码也可以工作,但这样更好


简言之,我认为这本书提供了很好的建议:如果你从未打算更改变量,请使用final或const。

谢谢你的回答。我会选择Darshan的,因为它可能更完整。了解延迟初始化很有意思。请注意文档已经更改。局部变量现在是用类初始化的,而不是第一次访问时。谢谢你的回答。我会选择Darshan的,因为它可能更完整。了解延迟初始化很有意思。请注意文档已经更改。局部变量现在用类初始化,而不是在第一次访问时初始化。