首页 > 解决方案 > 为什么最终变量允许更改其值?

问题描述

void main() {
  final num = [];
  num.add(1);
  print(num);  
}

输出

1

如果final变量已初始化,则无法更改,但为什么它允许我更改值而不允许我重新分配值num = 5;

标签: dart

解决方案


通过调用

final nums = [];

您创建了一个空的动态类型列表。

在此处输入图像描述

此列表本身是最终的,您不能重新分配它

在此处输入图像描述

但是,您可以轻松地将新项目添加到列表中,因为这只是列表上的一种方法。

换句话说,创建一个变量final意味着它不能被重新分配,但这并不意味着它不能改变。

最终变量只能设置一次

请参阅Dart 语言导览以了解更多信息。

一个重要的说明是num是 Dart 中的一个类,可能是双精度或整数,因此将其用作变量名不是一个好习惯。


推荐阅读