在Dart中,const和final关键字之间有什么区别?


当前回答

你不能使用final对象初始化const对象。例如:

  final myConst = 1;
  const myFinal = 2;

  final a = myConst; // possible
  final b = myFinal; // possible
  const c = myConst; // this is not possible
  const d = myFinal; // possible

其他回答

编译时不知道的任何东西都应该在const上使用final。

何时使用哪个关键字?

一个简单的例子: 使用final:如果你不知道它在编译时的值是多少。例如,当您需要从API获取数据时,就会在运行代码时发生这种情况。

使用const:如果您确定在运行代码时不会更改某个值。例如,当你声明一个始终保持不变的句子。

https://itnext.io/difference-between-const-and-final-in-dart-78c129d0c573

如果你来自c++,那么Dart中的const在c++中是constexpr,而Dart中的final在c++中是const。

以上内容仅适用于基本类型。 然而在Dart中,标记为final的对象在其成员方面是可变的。

常量

Value必须在编译时已知,const birthday = "2008/12/25"初始化后不能更改。


最后

值必须在运行时已知,最终生日= getBirthDateFromDB()初始化后不能更改。

答案就在图像本身。